π¬ MySQL Commands
π (Temporary) Allow ALL IPs
GRANT ALL PRIVILEGES ON *.* TO 'database_name'@'%' IDENTIFIED BY 'password';FLUSH PRIVILEGES;π Remove βallow allβ (%)
DROP USER 'database_name'@'%';β Allow Specific IP
GRANT ALL PRIVILEGES ON your_database.* TO 'database_name'@'192.168.42.1' IDENTIFIED BY 'password';FLUSH PRIVILEGES;β Allow Subnet (per building)
GRANT ALL PRIVILEGES ON your_database.* TO 'database_name'@'192.168.18.%';<br>GRANT ALL PRIVILEGES ON your_database.* TO 'database_name'@'192.168.42.%';<br>GRANT ALL PRIVILEGES ON your_database.* TO 'database_name'@'192.168.100.%';<br>FLUSH PRIVILEGES;π Check Allowed IPs
SELECT user, host FROM mysql.user WHERE user = 'database_name';π Check Permissions
SHOW GRANTS FOR 'database_name'@'192.168.42.%';π§ Linux / Server Commands
π₯ Allow MySQL Port (ALL β testing only)
sudo ufw allow 3306π Allow Specific Subnet (recommended)
sudo ufw allow from 192.168.18.0/24 to any port 3306
sudo ufw allow from 192.168.42.0/24 to any port 3306
sudo ufw allow from 192.168.100.0/24 to any port 3306π Check Firewall Rules
sudo ufw statusβοΈ Enable Remote MySQL Access
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnfSet:
bind-address = 0.0.0.0π Restart MySQL (only if config changed)
sudo systemctl restart mysqlπ§ͺ Test Connection
mysql -u database_name -p -h your_server_ip