今天配置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數據庫?!皃assword”:分配賬號對應的密碼,這里密碼自己替換成你的 root帳號密碼
第二行命令是刷新權限信息,讓我們設置的權限馬上生效。
但是最終還是不能訪問,此時考慮有可能是防火墻及mysql的3306端口問題.
通過命令netstar -a查詢所有端口沒看到3306,通過命令nerstat -an|grep 3306,什么都不顯示,可以確定是3306端口不存在。
登錄阿里云控制臺,在云服務安全組新增規則,克隆一個規則出來并把端口號修改成mysql的3306,再次遠程連接還是失敗。
此時需控制臺重啟系統讓新增的規則生效,重啟后再次連接依然失敗,此時本地的navicat軟件連接返回的是拒絕訪問錯誤而不再是之前的無法連接錯誤。
此時再次執行上方的第二步授權用戶命令,重啟apache mysql之后終于連接成功。
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com