结论:
1、修改数据库下root用户的host字段(为空或%
)
2、修改 /etc/mysql/mysql.conf.d/mysqld.cnf
文件下 bind-address
的配置为 0.0.0.0
或者屏蔽此配置内容 (默认配置是: bind-address = 127.0.0.1
)
补充:
查看数据库下用户与host字段的关系,通过命令 select user,host from mysql.user;
查询结果如下
bash
mysql> select user,host from mysql.user;
+------------------+--------------+
| user | host |
+------------------+--------------+
| debian-sys-maint | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+--------------+
5 rows in set (0.00 sec)
修改root用户对应的host内容:
bash
# 更新root用户的host字段为空 ;表示 root 用户可以通过 Unix 套接字连接,而不仅限于某个特定的 IP 地址或主机名
UPDATE mysql.user SET host='' WHERE User='root';
#更新root用户的host字段为% ;表示 root 用户可以从任何主机连接
UPDATE mysql.user SET host='%' WHERE User='root';
#刷新MYSQL的权限缓存,使修改的的更新生效
FLUSH PRIVILEGES;
也可通过添加指定host的方式限制连接mysql的IP地址
bash
#指定一个ip地址进行添加 ( IP 和 PASSWORD 需要替换为实际的ip和密码内容 )
GRANT ALL PRIVILEGES ON *.* TO 'root'@' IP ' IDENTIFIED BY ' PASSWORD ' WITH GRANT OPTION;
# 删除指定root用户下对应的host地址的记录
DELETE FROM mysql.user WHERE User='root' AND Host='ip';
#刷新MYSQL的权限缓存,使修改的的更新生效
FLUSH PRIVILEGES;
异常:
错误代码 2003 通常表示无法连接到 MySQL 服务器。而错误代码 10061 是指连接被拒绝。
需要执行结论2的操作。
"1130 host is not allowed to connect to this MySQL server" 错误通常表示 MySQL 服务器拒绝了来自特定主机的连接。
需要执行结论1的操作。