標籤:mysql 資料庫
問題:MySQL使用權限設定正確,但仍無法遠端存取。通過telnet發現3306連接埠未開啟。
分析:MySQL預設只綁定127.0.0.1,即:只有在本機才能訪問3306連接埠。
解決:找到MySQL設定檔,搜尋“bind-address”,找到這一行:
bind-address = 127.0.0.1 在前面加一個#,注釋掉這一行,儲存,重啟MySQL。再通過遠端存取就可以了,telnet可以發現連接埠也開啟了。
例我們配置
1. 確保skip-networking被刪除或者屏蔽,否則不支援TCP/IP 訪問
2. 增加行bind-address = 65.55.55.2,替代65.55.55.2 為你的伺服器位址
儲存並關閉設定檔
重啟mysql伺服器:# /etc/init.d/mysql restart
1。 改表法。
可能是你的帳號不允許從遠程登陸,只能在localhost。這個時候只要在localhost的那台電腦,登入mysql後,更改 "mysql" 資料庫裡的 "user" 表裡的 "host" 項,從"localhost"改稱"%"
CODE:mysql -u root -p123mysql>use mysql;mysql>update user set host = '%' where user = 'root';mysql>select host, user from user;
2. 授權法。
例如,你想kevin使用mypassword從任何主機串連到mysql伺服器的話。
GRANT ALL PRIVILEGES ON *.* TO 'kevin'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
如果你想允許使用者kevin從ip為192.168.101.234的主機串連到mysql伺服器,並使用mypassword作為密碼
GRANT ALL PRIVILEGES ON *.* TO 'kevin'@'192.168.101.234' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
注意了,如果是Linux系統防火牆也很重要哦
iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
更多內容:
mysql遠端資料庫匯入到本地
mysql命令列匯出資料庫
mysql忘記密碼的解決方案
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
mysql設定遠端存取資料庫的多種方法