ERROR 1130 (HY000): Host '192.168.78.128' is not allowed to connect to this MySQL server

本文详细介绍了如何解决MySQL服务器不允许远程连接的问题,并提供了具体的步骤,包括更新用户设置、重启服务和使用Navicat进行远程连接测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



这个是在 《 基于MySQL Yum存储库在Linux-7.2上安装MySQL-5.7.21数据库服务(实战篇) 》 中遇到的问题

http://blog.youkuaiyun.com/hello_world_qwp/article/details/79544107


mysql 不允许远程连接到 mysql 服务器的问题:

ERROR 1130 (HY000): Host '192.168.78.128' is not allowed to connect to this MySQL server

如下图:



解决办法:

1、启动 mysql 服务,输入命令 “ systemctl start mysqld.service ”
检查 mysql 服务器是否启动,输入命令 “ systemctl status mysqld.service ”

如下图:




2、在服务器本地输入命令 “ mysql -u root -p ” 然后输入命令 “ use mysql; ” 切换到 mysql 数据库,

成功切换到 mysql 数据库后,如下图:




3、查询用户信息用户账户与主机的对应关系,输入查询语句 “ select Host,User from user; ”

当前的 root 对应的主机为 “ localhost ” ,如下图:




4、将 root 对应的主机修改为 “ % ” ,表示匹配任意字符,
输入修改语句 “ update user set Host='%' where User ='root' limit 3; ” 

修改成功后,如下图:




注意:% 分号可以改为服务器本地 IP -> 192.168.78.128,加上 limit 在数据较多的情况下,可以提高性能。
5、用户账户配置修改完成后,还需要进行强制刷新,输入命令 “ flush privileges; ” 

刷新完成后,输入命令 “ quit ” 退出 mysql ,如下图:




6、重启 mysql 服务,输入命令 “ systemctl restart mysqld.service ”。


7、测试远程连接,使用 mysql 客户端绿色工具 “ Navicat ” ,我在这儿提供个下载地址,
https://download.youkuaiyun.com/download/hello_world_qwp/10117585

直接打开,然后输入 mysql 服务器 IP 等,点击 “ 连接测试 ” 提示连接成功,如下图:










好了,关于 Mysql 远程连接失败的问题就解决了,如果还有什么疑问或遇到什么问题,可以给我留言。
歇后语:“共同学习,共同进步”,也希望大家多多关注CSND的IT社区。
### 问题分析 用户遇到的问题是 MySQL 报错 `ERROR 1130 (HY000): Host '192.168.124.26' is not allowed to connect to this MySQL server`。此错误通常表明客户端的 IP 地址未被授权访问 MySQL 服务器。以下将详细分析并提供解决方案。 --- ### 解决方案 #### 1. 检查 MySQL 用户权限 MySQL 的用户权限是由 `user` 表和 `db` 表控制的,需要确保目标 IP 地址(如 `192.168.124.26`)已被正确授权。可以通过以下 SQL 命令检查和设置权限: ```sql -- 查看当前用户的权限配置 SELECT Host, User FROM mysql.user WHERE User = 'your_user'; -- 如果目标 IP 未被授权,添加权限 GRANT ALL PRIVILEGES ON *.* TO 'your_user'@'192.168.124.26' IDENTIFIED BY 'your_password' WITH GRANT OPTION; -- 刷新权限以使更改生效 FLUSH PRIVILEGES; ``` 上述命令中,`'your_user'` 和 `'your_password'` 需要替换为实际的用户名和密码[^1]。 #### 2. 修改 MySQL 配置文件 如果 MySQL 服务器仅允许本地连接(默认绑定到 `127.0.0.1`),需要修改配置文件以允许远程连接。编辑 MySQL 配置文件(通常是 `/etc/my.cnf` 或 `/etc/mysql/my.cnf`),找到并修改以下内容: ```ini [mysqld] bind-address = 0.0.0.0 ``` 将 `bind-address` 设置为 `0.0.0.0`,表示允许所有 IP 地址访问。然后重启 MySQL 服务以应用更改: ```bash systemctl restart mysqld ``` #### 3. 检查防火墙规则 即使 MySQL 配置正确,防火墙也可能阻止特定 IP 地址的连接。可以使用以下命令检查和配置防火墙规则: ```bash # 检查当前防火墙规则 firewall-cmd --list-all # 允许 MySQL 端口(默认 3306) firewall-cmd --permanent --add-port=3306/tcp firewall-cmd --reload ``` 确保目标 IP 地址(如 `192.168.124.26`)能够通过防火墙访问 MySQL 服务[^2]。 #### 4. 测试连接 完成上述步骤后,可以通过以下命令测试连接是否成功: ```bash mysql -u your_user -p -h 192.168.124.26 ``` 如果连接仍然失败,可以查看 MySQL 错误日志以获取更多信息: ```bash tail -f /var/log/mysqld.log ``` --- ### 注意事项 - 如果需要允许任意 IP 地址访问 MySQL 服务器,可以将权限设置为 `'%'`,但需谨慎操作以避免安全风险。 - 在生产环境中,建议限制允许访问的 IP 地址范围,并启用 SSL 加密以保护数据传输的安全性[^3]。 --- ### 示例代码 以下是一个完整的权限设置示例: ```sql -- 创建用户并授予特定 IP 访问权限 CREATE USER 'test_user'@'192.168.124.26' IDENTIFIED BY 'password123'; GRANT ALL PRIVILEGES ON *.* TO 'test_user'@'192.168.124.26'; -- 刷新权限 FLUSH PRIVILEGES; ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TechBro华仔

日拱一卒无有尽,功不唐捐终入海

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值