linux配置mysql資料庫遠端連線失敗

weixin_42496542發表於2020-10-25

今天配置linux下mysql資料庫可以遠端訪問的問題,百度這方面的資料有很多,但是方法都一樣,都試過了卻未能解決,記錄一下

第一步:在/etc/mysql/my.cnf下找到bind-address = 127.0.0.1

在這行前加個"#"進行註釋,或者改為: bind-address = 0.0.0.0

允許任意IP訪問;或者指定自己需要遠端訪問的IP地址。

然後重啟mysql:sudo /etc/init.d/mysql restart

第二步:授權使用者能進行遠端連線

grant all privileges on . to root@"%" identified by “password” with grant option;

flush privileges;

第一行命令解釋如下,.:第一個代表資料庫名;第二個代表表名。這裡的意思是所有資料庫裡的所有表都授權給使用者,如果只是授權某資料庫或資料庫下某張表,則把*替換成你所需的資料庫名和表明即可。root:授予root賬號。“%”:表示授權的使用者IP可以指定,這裡代表任意的IP地址都能訪問MySQL資料庫。“password”:分配賬號對應的密碼,這裡密碼自己替換成你的 root帳號密碼

第二行命令是重新整理許可權資訊,讓我們設定的許可權馬上生效。

但是最終還是不能訪問,此時考慮有可能是防火牆及mysql的3306埠問題.

通過命令netstar -a查詢所有埠沒看到3306,通過命令nerstat -an|grep 3306,什麼都不顯示,可以確定是3306埠不存在。

登入阿里雲控制檯,在雲服務安全組新增規則,克隆一個規則出來並把埠號修改成mysql的3306,再次遠端連線還是失敗。
在這裡插入圖片描述
在這裡插入圖片描述

此時需控制檯重啟系統讓新增的規則生效,重啟後再次連線依然失敗,此時本地的navicat軟體連線返回的是拒絕訪問錯誤而不再是之前的無法連線錯誤。

此時再次執行上方的第二步授權使用者命令,重啟apache mysql之後終於連線成功。

相關文章