在使用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,则替换下%就好