在使用navicat訪問虛擬機上的mysql時報can't connnect to MySQL server on 'localhost' (10038)mysql
首先看是否能夠ping通ubuntu上的IP地址,若是能ping說明網絡是好的,而後在telnet,本機cmd,telnet ip 3306,顯示鏈接失敗。sql
mysql在初始化安裝時默認只能本機鏈接,即只容許localhost;查看方式: apache
netstat -an | grep 3306
顯示信息爲ubuntu
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
127.0.0.1 表示只監聽本機迴環地址,只能本機訪問,0.0.0.0 表示監聽本地全部ip地址,其餘電腦是能夠訪問的,而且修改ip不受影響,修改網絡
/etc/mysql/mysql.conf.d,修改mysqld.cnf中的 bind-address = 127.0.0.1
改成 bind-address = 0.0.0.0
tcp
重啓mysql :service mysqld restart命令行
肯定下防火牆是否有攔截端口;確認3306沒有被牆,rest
而後在用navicat訪問鏈接成功;code
可是隻能使用root帳號鏈接,普通用戶登陸 Access denied for user 'aaaa'@'192.168.1.100' (using password: YES)server
解決方式:受權處理,進入mysql命令行:mysql -uroot -h127.0.0.1 -p;受權
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
刷新:
flush privileges;
其中usrname是你的用戶名,%是訪問的機器,password是密碼。 %訪問IP不受限制,若想限制特定IP,則替換下%就好