無法遠程訪問Mysql的解決方案


在網上有很多關於這個的解決方案,我也采用了
寫的比較詳細的如:
 1。 改表法。可能是你的帳號不允許從遠程登陸,只能在localhost。這個時候只要在localhost的那台電腦,登入mysql后,更改 "mysql" 數據庫里的 "user" 表里的 "host" 項,從"localhost"改稱"%"
CODE:mysql -u root -p123
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
  2. 授權法。例如,你想kevin使用mypassword從任何主機連接到mysql服務器的話。
CODE:GRANT ALL PRIVILEGES ON *.* TO 'kevin'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
  如果你想允許用戶kevin從ip為192.168.101.234的主機連接到mysql服務器,並使用mypassword作為密碼
CODE:GRANT ALL PRIVILEGES ON *.* TO 'kevin'@'192.168.101.234' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
  3.如果按照上面這樣做還不行(一般好像在windows下那樣就可以了)那就修改下面這個配置文件吧(我是在linux環境下 大家可以找到自己mysql安裝目錄下的相應配置文件)
CODE:vi /etc/mysql/my.cnf
  注釋掉
CODE:#bind-address = 127.0.0.1
  大功告成!!!

然后我采用的是第一種方法,然后在運行完最后一句話后出了個錯誤ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY' 
於是又去找解決方案,發現先
mysql> select host from user where user = 'root'; 

+-----------------------+ 
| host | 
+-----------------------+ 
| % | 
| 127.0.0.1 | 
| localhost.localdomain | 
+-----------------------+ 
3 rows in set (0.00 sec) 
host已經有了%這個值,所以直接運行命令: 

mysql>flush privileges; 
果然還行的通,由於對mysql不是很深入的了解,通過php果然可以遠程訪問了,但是我忽略了一點
這里將host = '%'后,是可以遠程訪問了,但是我們使用root不能訪問本地了
這是由於%的意思就是允許除本機外的所有都可以訪問

如果前面已經如上操作了,那么你再在本地訪問的時候
#mysql -u root -p
輸入密碼后會提示

 

 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 
這就很郁悶,本機已經無法登陸了,這時我們需要安全模式進入(個人理解為安全模式)
首先,將mysql服務停止
#/etc/init.d/mysql stop   或者  #sudo service mysqld stop
然后再執行
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
記住  后面那個  &是需要的
等出現一些提示后  應該是在starting...之后
直接輸入  mysql 即可進入數據庫了  (這里其實也可以是忘記密碼后進行修改密碼的方法)
進入后,修改密碼的語句為:
mysql> use mysql;   
進入數據庫修改密碼
mysql> update user set password = PASSWORD('你的新密碼') where user='root'
如果是要解決上面修改了host的方法就是執行
mysql> update user set host='localhost' where user='root' and host='%'
將host改回來

但是改回來豈不是又無法遠程訪問了?
其實我們可以新增一個用戶,把必要的權限授予於這個用戶,且將這個用戶的host設為%

過程中出現的錯誤要仔細查看,要注意防火牆的狀態,可能影響數據庫的遠端連接。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM