今天用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) 问题解决的过程的更多相关文章

  1. 连接远程数据库时出现 SSH: expected key exchange group packet from server / 2003 - Can't connect to MySQL server on 'XXX' (10038) / 1130 - Host 'XXX' is not allowed to connect to this MySQL server

    昨天在自己的远程服务器上玩,把系统重装了.新装了MySQL,在本地用navicat连接的时候出了几个小问题. 问题一:SSH: expected key exchange group packet f ...

  2. mysql远程访问1045的问题解决

    mysql远程访问1045的问题解决 首先进入mysql数据库,然后输入下面两个命令 grant all privileges on *.* to 'root'@'%' identified by ' ...

  3. 开启mysql远程访问过程中所遇常见问题的解决办法

    MYSQL ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.10.210' (111) 解决方法 今天在测试MySQL的连接 ...

  4. mysql 远程访问不行解决方法 Host is not allowed to connect to this MySQL server

    mysql 远程访问不行解决方法 Host is not allowed to connect to this MySQL server 如果你想连接你的mysql的时候发生这个错误: ERROR 1 ...

  5. MySQL问题记录——2003-Can't connect to MySQL server on 'localhost'(10038)

    MySQL问题记录——2003-Can't connect to MySQL server on 'localhost'(10038) 摘要:本文主要记录了连接到MySQL数据库时出现的问题以及解决办 ...

  6. mysql Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’

    mysql Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ 今天在linux中安装了mys ...

  7. linux下mysql远程访问

    // */ // ]]>   linux下mysql远程访问 Mysql默认root用户只能本地访问,不能远程连接管理mysql数据库,但项目中必须要远程导 入导出数据,所以研究了一下. Tab ...

  8. #2006 - MySQL server has gone away 问题解决方法 (全) (转)

    #2006 - MySQL server has gone away 问题解决方法 原文地址:http://www.cnblogs.com/bisonjob/archive/2009/08/18/15 ...

  9. Mysql远程访问

    命令行: mysql -h 192.168.1.145 -u root -p 1.初始化root密码 进入mysql数据库 1mysql>update user set password=PAS ...

随机推荐

  1. BZOJ1861:[ZJOI2006]书架——题解

    http://www.lydsy.com/JudgeOnline/problem.php?id=1861 (题面复制于洛谷) 题目描述 小T有一个很大的书柜.这个书柜的构造有些独特,即书柜里的书是从上 ...

  2. Itext2.0.8 和freemarker导出pdf

    这个是跟上一篇写的freemarker导出word是一块的.但是关联性不是很大.由于本人技术有限本篇导出也是根据网上大家的做出的demo混合而成.有不足的地方请大家指出.好改正,使以后看到的freem ...

  3. c# 计算时间差---天数

    ---处理两个时间相差的天数 测试数据:三个时间 DateTime dt1 = Convert.ToDateTime("2017-03-17 09:49:55.667"); Dat ...

  4. gitlab 的使用策略和简单介绍

    gitlab 作为版本控制器,基本使用和github 相同,以下是一些策略和介绍: Git 分支管理策略可以参考下面三个链接: http://www.ruanyifeng.com/blog/2012/ ...

  5. jQuery图表插件Flot中文文档

    转载自:http://www.itivy.com/ivy/archive/2011/6/4/jquery-flot-chinese-doc.html 最近正在使用JQuery的flot进行画图,但是这 ...

  6. 给定一个数字n,不用for循环实现输出数组 [1,2,3,4,...,n]

    一.for循环方式实现输出[1, 2, 3, ..., n] var n = 5; function test(n){ var arr=[]; for( var i = 1; i <= n; i ...

  7. 【PHP】Windows下配置用mail()发送邮件

    ZZ:解决windows系统下php.ini邮件配置正确不发送邮件的问题 php mail()函数在windows不能用,需要安装sendmail,假如是用的XAMPP,则已经下载好,不需要重新下载~ ...

  8. Doc常用命令

    1. 获取目录: dir 2. 清屏: cls

  9. 三星 C7恢复 出厂设置

    http://jingyan.baidu.com/article/c14654134f0fd20bfcfc4c1e.html

  10. .NET中使用switch和java不一样的地方。

    1.不能这样贯穿 我们知道,java 和 C在使用switch时候可以这样. switch (i) { //java中此处不使用break // 执行了case 1:对应的语句后直接 贯穿到 case ...