解决 ERROR 1130 (HY000): Host is not allowed to connect to this MySQL server

当使用 MySQL 时,您可能会遇到错误信息"ERROR 1130 (HY000): Host 'hostname'is not allowed to connect to this MySQL server"这是 MySQL 用于防止未经授权的访问的标准安全特性。实际上,服务器还没有配置为接受来自相关主机的连接。

Common Causes:

(1) Connection Restrictions

MySQL 默认配置为只允许来自本地主机 (127.0.0.1) 的连接。

(2) User Privileges

用户可能没有从特定主机或任意主机进行连接的权限。

(3) Firewall Restrictions

防火墙可能会阻塞必要的端口 (MySQL 的 3306 端口)

(4) Incorrect bind-address

my.cnf 或 my.ini 文件有一个 bind-address 指令,该指令被设置为与您正在连接的 IP 不同的 IP。

Steps to Resolve the Error:

1. Connect to the MySQL Server

首先,您需要本地连接到 MySQL 服务器,或者使用不会抛出此错误的方法。

mysql -u root -p

2. Grant Access to Your IP Address

如果只允许从特定 IP 地址连接

sql 复制代码
GRANT ALL PRIVILEGES ON *.* TO 'username'@'your_ip_address' IDENTIFIED BY 'password';

如果允许从任何 IP 连接 (不太安全)

sql 复制代码
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY 'password';

授予特权之后,刷新权限

sql 复制代码
FLUSH PRIVILEGES;

3. Check the Bind-Address

找到 mysqld.cnf(linux/unix)或 my.ini(Windows)文件。

查找 bind-address 指令,设置为 0.0.0.0,表示 MySQL 接受来任意主机的连接。

ini 复制代码
bind-address = 0.0.0.0

修改完成后,重新启动 MySQL 服务器。

sudo systemctl restart mysql

4. Check Your Firewall

如果运行 MySQL 的机器上开启了防火墙,则可能会阻止外部连接,请确保放行 3306 端口。

sudo ufw allow 3306/tcp 
sudo ufw reload

5. Test the Connection

从远程计算机再次尝试连接

mysql -u username -p -h mysql_server_ip

我的开源项目

相关推荐
和道一文字yyds1 小时前
MySQL 中如何解决深度分页的问题?什么是 MySQL 的主从同步机制?它是如何实现的?如何处理 MySQL 的主从同步延迟?
android·数据库·mysql
阿乾之铭3 小时前
MySQL 性能优化
数据库·mysql·性能优化
obboda5 小时前
使用haproxy实现MySQL服务器负载均衡
服务器·mysql·负载均衡
Y编程小白6 小时前
MySQL的存储引擎
数据库·mysql
爱老的虎油6 小时前
MySQL零基础教程10—正则表达式搜索(下)
数据库·mysql·正则表达式
nfenghklibra8 小时前
Docker安装Mysql
mysql·docker
恬淡虚无真气从之8 小时前
centos7使用rpm包安装mysql5.6和mysql8.0
mysql
m0_748237158 小时前
MySQL 篇 - Java 连接 MySQL 数据库并实现数据交互
java·数据库·mysql
清酒伴风(面试准备中......)8 小时前
MySQL常用命令大全(可复制使用)
java·数据库·mysql·oracle·实习