WithCoderWithCoderWithCoder

远程连接MySQL数据库root账号报错:2003 - can't connect to MySQL server on '*'

当MySQL数据库安装完成后,本机登录操作没有问题.满心欢喜的使用SQLyog或Navicat等远程远程连接MySQL数据库时,使用root账号登录却报错误号码2003 - can't connect to MySQL server on 'IP地址'(0).

1-2002251G619216.png

防火墙问题

这时,我们首先要考虑MySQL所在主机的防火墙是否处于开启且没有开启MySQL默认端口3306.为了测试需要,我们可以先关闭防火墙进行连接测试.有关Centos7防火墙的设置问题,可以参考本站的文章Centos7防火墙设置和管理.

远程授权问题

如果还是不行,可能是没有授权远程主机使用root账号登录的权限.这时,我们可以在安装MySQL的主机上面,通过本机登录MySQL,进行授权(假设登录用户名为root,登录密码为123456).

具体步骤如下(Windows和Linux相同):

    1. 登录数据库,并输入密码

        mysql -u root -p

    2. 修改登录权限

        GRANT ALL PRIVILEGES ON *.* TO '登录用户名'@'允许登录的主机' IDENTIFIED BY '登录密码' WITH GRANT OPTION;

        例如,想让任何主机都可以使用root账号登录数据库,权限语句可以这样写(%匹配任何主机)

        GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

        而如果只想让指定的ip:192.168.1.10登录,权限语句可以这样写

        GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.10' IDENTIFIED BY '123456' WITH GRANT OPTION;

    3. 刷新权限表,使以上设置立即生效

        flush privileges;

    以上操作如下图:

1-20022521003A60.png

完成以上设置后,再次登录.

一般情况下,关闭防火墙再加上以上设置,远程连接数据库是可以连接成功的.

欢迎分享交流,转载请注明出处:WithCoder » 远程连接MySQL数据库root账号报错:2003 - can't connect to MySQL server on '*'