MySql遠程連接無法打開解決辦法
1、改表法。
請使用mysql管理工具,如:SQLyog Enterprise、navicate mysql
可能是你的帳號不允許從遠程登陸,只能在localhost。這個時候只要在localhost的那台電腦使用mysql管理工具登入mysql後,更改 "mysql" 數據庫裡的 "user" 表裡的 "host" 項,從"localhost"改稱"%"
2、 授權法。
A:你想mysql賬戶myuser使用密碼mypassword從任何主機連接到mysql服務器的話,那就在mySQL命令行下輸入:
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
若上面那條命令還沒有奏效,那就使用下面的命令,一定成功!
如果你想允許想mysql賬戶myuser從ip為192.168.1.3的主機連接到mysql服務器,並使用mypassword作為密碼,那就在mySQL命令行下輸入:
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
以下是其它網友的補充:
在遠程主機上,我開啟了mysql 服務,用 phpmyadmin 可以打開,比如說用戶名為 root,密碼為 123456。不過用 Mysql 客戶端遠程連接時卻報了錯誤,比如 Mysql-Front 報了如下錯誤。
Access denied for user ‘root'@'121.42.8.33′(using password:YES)
比較奇怪,phpmyadmin 可以正常訪問,而 Mysql-Front 為什麼無法連接呢?可能的原因,應該就是 IP 限制了,phpmyadmin在連接時使用的是localhost,而我們訪問頁面才使用的遠程主機的 IP,而 Mysql-Front 連接的是遠程主機。
解決方法如下,我們需要新建一個用戶,然後授予所有 IP 可以訪問的權限就好啦。
在下面的 sql 語句中,username 即為用戶名,password 為你要設置的密碼:
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' WITH GRANT OPTION; CREATE USER 'username'@'%' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' WITH GRANT OPTION; CREATE USER 'username'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' WITH GRANT OPTION; CREATE USER 'username'@'%' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' WITH GRANT OPTION;
通過執行以上語句,便創建了一個用戶名為 username,密碼為 password 的新賬戶,再用新賬號登錄,就可以連接成功啦。