mysql遠程訪問cannot connect(10038) 問題解決的過程


今天用Navicat訪問虛擬機上的mysql,無法訪問報cannot connect(10038)。

首先看是否可以telnet,本機cmd,telnet 192.168.209.128 3306,結果是連接失敗,

再到虛擬機上確認 netstat -anp ,發現 “tcp        0      0    127.0.0.0:3306            0.0.0.0:*               LISTEN”

(LocalAddress中: 0.0.0.0 表示監聽本地所有ip地址,其他電腦是可以訪問的,並且修改ip不受影響。 127.0.0.1 表示只監聽本機回環地址,只能本機訪問。 x.x.x.x ip地址,是只監聽這個ip。修改ip后程序就不能監聽了。需要手動修改軟件監聽地址才可以用)

這里LocalAddress為127.0.0.0,說明是這里的問題。

於是乎,到/etc/mysql/mysql.conf.d,修改mysqld.cnf中的   bind-address = 127.0.0.1    to       bind-address = 0.0.0.0

問題得到解決。

之后,只用root可以登錄,但普通用戶登錄 Access denied for user 'shopsys'@'192.168.8.123' (using password: YES)

分別查看權限: 

show grants for 'root'@'%';
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD '*E995D71A1F13CCE285E250B75338A9B93FE48C9B' WITH GRANT OPTION |

show grants for 'shopsys'@'%';
| GRANT USAGE ON *.* TO 'shopsys'@'%'                  |
| GRANT ALL PRIVILEGES ON `shopsys`.* TO 'shopsys'@'%' |

對比可見,普通用戶沒有identified....

進行授權操作:GRANT ALL PRIVILEGES ON *.* TO'shopsys'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

隨后可以正常訪問。再查權限時,已變成:
| GRANT ALL PRIVILEGES ON *.* TO 'shopsys'@'%' IDENTIFIED BY PASSWORD '*84AAC12F54AB666ECFC2A83C676908C8BBC381B1' WITH GRANT OPTION |
| GRANT ALL PRIVILEGES ON `shopsys`.* TO 'shopsys'@'%'                                                                              |

參考:http://www.cnblogs.com/cnblogsfans/archive/2009/09/21/1570942.html

 

        歡迎關注公眾號,了解更多信息


免責聲明!

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



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