最近在開發中遇到了IP不能連接本地MySQL數據庫的問題,在這里分享一下解決方法。
具體問題表現為:在設置好本地MySQL的賬號密碼和授權后,外部IP不能連接本地MySQL數據庫。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; FLUSH PRIVILEGES;
首先確認以下幾點:
- MySQL賬號密碼是否正確
- MySQL授權情況
- 本地防火墻是否開啟
- 外部防火墻是否開啟
如果以上幾點確認無誤,還是無法連接,則需要進一步檢查MySql配置文件my.cnf是否開啟了遠程連接。
bind-address=127.0.0.1
這一行代碼表示MySQL只能通過本地IP連接。如果想要遠程連接,需要注釋掉這一行。
#bind-address=127.0.0.1
將上面代碼的#去掉即可開啟遠程連接。
順便提一下,如果需要讓MySQL遠程連接更加安全,可以修改my.cnf文件中的以下內容:
[mysqld] skip-name-resolve port=3306 bind-address=0.0.0.0 default-storage-engine=INNODB max_connections=500 query_cache_size=0 query_cache_type=0 innodb_log_file_size=256M innodb_flush_log_at_trx_commit=0 innodb_file_per_table=1 innodb_buffer_pool_size=2G
其中:skip-name-resolve代表禁止MySQL做DNS反解析,將提升安全性;port設置了MySQL的端口號;bind-address設為0.0.0.0意為允許來自任意IP的連接;其余項目設置可根據實際情況進行調整。
以上就是解決IP無法連接本地MySQL數據庫的方法,希望對大家有所幫助。