MySQL: Can’t connect to MySQL server on (111 “Connection refused”)


1. Mysql連接問題

遠程訪問mysql或者通過docker訪問宿主機mysql經常會碰到下面的問題:

Can’t connect to MySQL server on (111 “Connection refused”)

解決

找到自己MySQL數據庫配置文件的位置,編輯

/etc/mysql/mysql.conf.d# vi mysqld.cnf

bind_address 127.0.0.1 注釋掉

2. 開放遠程連接后,會出現第二個問題:

"Host 'x.x.x.x' is not allowed to connect to this MySQL server"

解決辦法

root 進入數據庫

$ mysql -uroot -p

執行下方兩行命令:

grant all privileges on *.* to 'root'@'%' identified by '12345678' with grant option;

開放所有權限給root,當root以12345678密碼從任意IP登入的時候,允許其操作所有數據庫下的所有表

flush privileges;

刷新,使上述命令生效

3. 重啟數據庫

$ /etc/init.d/mysql stop
$ /etc/init.d/mysql start

再從docker或者遠程主機訪問數據庫的時候就可以了

$ telnet 172.17.0.1 3306
Trying 172.17.0.1...
Connected to 172.17.0.1.
Escape character is '^]'.

注意: grant all privileges on *.* to 'root'@'%' identified by '12345678' with grant option; 給root用戶(mysql用戶里面的root,不是主機)
所有數據庫的最高權限,可能會有安全隱患。可以根據具體需求限制對具體的數據庫,甚至是表格進行授權


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM