轉自:
https://www.jianshu.com/p/24bd98112d80
https://www.cnblogs.com/myblog1993/p/10560679.html
1 開放MySQL的遠程連接
通過root用戶登錄MySQL:
# mysql -u root -p
執行賦權的命令:
MySQL> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY 'password' WITH GRANT OPTION;
MySQL> flush privileges;
password爲MySQL的root用戶對應的密碼。
重啓MySQL:
方式一:
# /etc/init.d/mysql restart
方式二:
# service mysql restart
2 開啓數據庫默認端口
首先,使用如下命令查看3306端口(MySQL默認端口號,沒有更改的情況下就是3306)是否對外開放:
netstat -an | grep 3306
如果顯示如下,說明MySQL端口目前只監聽本地連接127.0.0.1。然後需要修改MySQL的配置文件。
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
修改MySQL配置文件:
# cd /etc/mysql/mysql.conf.d
# vim mysqld.cnf
MySQL的默認端口也可以通過該文件進行修改。
將其中bind-address = 127.0.0.1註釋掉。然後重啓MySQL。
通過上述兩個步驟之後就可以重新試一下是否可以訪問,如果還是無法訪問,那就有可能是防火牆的原因。
3 檢查防火牆
可以先關閉防火牆測試,如果關閉之後就可以訪問,那麼可能就是MySQL的端口未開放,關閉防火牆和開放端口的命令如下:
關閉防火牆:
sudo ufw stop
開放3306端口:
sudo ufw allow 3306
4 附錄
UFW 是Ubuntu下的一個主機端的iptables類防火牆配置工具(底層調用iptables來處理),簡單易用。
安裝方法
sudo apt install ufw
使用方法
ufw 的指令列表:
常用ufw 指令介紹
啓用防火牆
sudo ufw enable
sudo ufw default deny
## 作用:開啓了防火牆並隨系統啓動同時關閉所有外部對本機的訪問(本機訪問外部正常)。
作用:開啓了防火牆並隨系統啓動同時關閉所有外部對本機的訪問(本機訪問外部正常)。
關閉防火牆
sudo ufw stop
查看防火牆狀態
sudo ufw status
查看應用程序列表
sudo ufw app list
增加許可規則 許可ssh 端口
sudo ufw allow ssh
允許外部訪問80端口
sudo ufw allow 80
禁止外部訪問80 端口
sudo ufw delete allow 80
允許此IP訪問所有的本機端口
sudo ufw allow from 192.168.1.1
可以允許所有RFC1918網絡(局域網/無線局域網的)訪問這個主機(/8,/16,/12是一種網絡分級)
sudo ufw allow from 10.0.0.0/8
sudo ufw allow from 172.16.0.0/12
sudo ufw allow from 192.168.0.0/16