问题描述

plaintext
1
1130 - Host 'my.lan' is not allowed to connect to this MySQL server

无法连接至远程 mysql 服务器,提示 Host 'my.lan' is not allowed to connect to this MySQL server

解决方法

1.mysql 配置问题

可能是 mysql 配置问题导致不允许远程连接,下面提供两种方式解决

  1. 命令行修改权限
    ssh 或 rdp 进入服务器,root 用户下执行 mysql -u root -p 输入密码,连接到 mysql 服务器

更改用户权限以允许远程连接:在 MySQL 命令行中,运行以下命令,其中 userpassword 修改为你允许远程连接的用户名和密码:
以下为 mysql8.0 版本的命令,mysql5.7 版本的命令有所不同

sql
1
2
3
CREATE USER 'user'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'user'@'%';
FLUSH PRIVILEGES;
  1. 修改 mysql 配置文件
    找到 mysql 配置文件,一般在 /etc/my.cnf/etc/mysql/mysql.conf.d/mysqld.cnf
    搜索 bind-address 关键字,将 bind-address 改为 0.0.0.0 即可允许远程连接
plaintext
1
bind-address = 0.0.0.0

2. 防火墙问题

可能是防火墙问题导致不允许远程连接
查看防火墙状态

plaintext
1
systemctl status firewalld.service

开启防火墙

plaintext
1
systemctl start firewalld.service

允许 mysql 端口

plaintext
1
2
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload

重启 mysql 服务

plaintext
1
systemctl restart mysqld.service