mysql远程访问cannot connect(10038) 问题解决的过程
Posted ohmydenzi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
欢迎关注公众号,了解更多信息
以上是关于mysql远程访问cannot connect(10038) 问题解决的过程的主要内容,如果未能解决你的问题,请参考以下文章
mariadb远程不能访问,出现Can't connect to MySQL server on '' (10061)
Mysql远程登录报错:Host '192.168.1.3' is not allowed to connect to this MySQL server
navicat for mysql出错,cannot connect to server on 127.0.0.1 10038
mySql 远程连接(is not allowed to connect to this MySQL server)
远程mysql报错GHost ‘xxx‘ is not allowed to connect to this MySQL serverConnection closed by foreign host