mysql设置远程访问,解决不能通过ip登录的问题(MySQL Error Number 2003,Can't connect to MySQL server )

mysql版本: 5.7.28,mysql 5.7版本的配置文件为:/etc/mysql/mysql.conf.d/mysqld.cnf

今天想要通过mysql -uname -ppassword -hIP远程访问数据库,但是经历了种种挫折。针对远程访问数据库失败的问题,主要通过以下方式解决:

假设mysql中远程访问的用户为z1

1.检查使用用户z1,外部ip是否有访问MySQL Server数据库的权限

使用mysql -uz1 -ppassword进入数据库
use mysql;
select * from user where User='z1';

检查User='z1'时的Host是否为%。其中%代表所有ip,若Host为localhost,则只能在本地登录到数据库中。 若Host为localhost,使用update user set Host='%' where User='z1' and Host='localhost'; 更新Host的值

2.如果需要新建用户,使用新建用户能够远程访问数据库,则使用:

CREATE USER 'z1'@'%' IDENTIFIED BY '123456'; #其中,'z1'@'%' 是指新建用户z1,使用该用户名可以从任何主机来连接数据库,'123456'是密码

刚创建的用户默认是没有权限的,需要使用grant指令进行权限的授予,如下所示:

给用户赋权限:

GRANT ALL PRIVILEGES ON *.* TO z1; #增加除Grant_priv以外的所有权限
GRANT ALL PRIVILEGES ON *.* TO z1 WITH GRANT OPTION; #增加Grant权限

 3.设置远程登录时需要的其他操作:

  1. 修改mysql配置文件,将bind-address=127.0.0.1注释掉。。mysql 5.7版本的配置文件为:/etc/mysql/mysql.conf.d/mysqld.cnf
  2. 重启mysql服务 /etc/init.d/mysql restart
  3. 在其他机器上使用 mysql -uname -ppassword -hDbIP即可连入到DbIP中的数据库中

原文地址:https://www.cnblogs.com/mianbaoshu/p/15324270.html