如何解決遠程連接mysql出現Can’t connect to MySQL server on (111 “Connection refused”)的問題

轉自:
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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章