zoukankan      html  css  js  c++  java
  • 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

            欢迎关注公众号,了解更多信息

  • 相关阅读:
    php内存管理机制、垃圾回收机制
    Redis 3.2.1集群搭建
    centos开启IPV6配置方法
    /etc/hosts.allow和/etc/hosts.deny详解
    3元购买微信小程序解决方案一个月
    linux下使用ntfs-3g挂载NTFS出错
    腾讯云微信小程序域名变更指南
    nginx开启gzip压缩
    centos 7使用yum安装docker容器
    linux中启动网卡报错:Bringing up interface eth1: Error: Connection activation failed
  • 原文地址:https://www.cnblogs.com/ohmydenzi/p/5521121.html
Copyright © 2011-2022 走看看