1130 - Host '112.26.184.51' is not allowed to connect to this MySQL server
时间: 2025-04-13 20:32:24 浏览: 27
<think>嗯,用户遇到了MySQL的1130错误,提示主机不允许连接。我需要先分析这个错误的原因。根据引用资料,这个问题通常是由于MySQL服务器的用户权限配置问题,导致特定主机无法连接。首先,用户可能需要检查MySQL中的用户权限表,确认是否有允许远程主机访问的权限。
然后,解决方案方面,常见的步骤包括使用root用户登录MySQL,然后创建或修改用户权限,允许特定IP或所有主机的访问。例如,使用GRANT命令授权用户,并刷新权限。此外,还需要检查MySQL的配置文件my.cnf或my.ini,确保bind-address没有被限制为本地地址,可能需要注释掉或者改为0.0.0.0。防火墙设置也是常见的问题,需要确认3306端口是否开放。
另外,用户可能使用Navicat连接时出现这个错误,引用[4]和[5]提到可能需要更新用户的主机权限为'%',允许所有主机访问。但要注意安全风险,最好指定具体的IP。还要注意MySQL 8的密码插件可能导致的认证问题,可能需要更改加密方式。最后,用户需要重启MySQL服务使配置生效,并进行测试连接。
需要确保回答的步骤清晰,用户能够一步步跟随操作,同时提醒安全注意事项,比如避免使用过于宽松的权限。可能还需要生成相关问题,帮助用户深入理解其他可能的连接问题,比如1045错误或防火墙配置等。</think>### 逐步解决方案:MySQL ERROR 1130 (Host not allowed)
此错误表示MySQL服务器拒绝了来自指定主机的连接请求,核心原因是用户权限未配置或网络限制。以下是详细解决步骤:
---
#### **步骤1:登录MySQL服务器**
通过本地命令行或工具(如MySQL Workbench)登录MySQL服务器:
```bash
mysql -u root -p # 输入root密码后进入MySQL命令行
```
---
#### **步骤2:检查用户权限配置**
在MySQL命令行中执行以下查询,确认用户是否允许远程主机访问:
```sql
SELECT user, host FROM mysql.user;
```
如果用户对应的`host`字段值为`localhost`,则仅允许本地连接,需修改为`%`(允许所有主机)或特定IP(如`192.168.1.%`)[^3][^4]。
---
#### **步骤3:授权远程访问权限**
- **方式1:为现有用户授权**
```sql
GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;
FLUSH PRIVILEGES; -- 刷新权限
```
- **方式2:创建新用户并授权**
```sql
CREATE USER '新用户名'@'%' IDENTIFIED BY '密码';
GRANT ALL PRIVILEGES ON *.* TO '新用户名'@'%';
FLUSH PRIVILEGES;
```
**注意**:`%`表示允许所有IP,建议生产环境限制为特定IP[^2][^5]。
---
#### **步骤4:检查MySQL绑定地址**
修改MySQL配置文件(路径因系统而异):
- **Linux**: `/etc/mysql/mysql.conf.d/mysqld.cnf`
- **Windows**: `my.ini`
找到`bind-address`参数并修改为:
```ini
bind-address = 0.0.0.0 # 允许所有IP连接
# 或注释掉此行
```
保存后重启MySQL服务:
```bash
systemctl restart mysql # Linux
net stop mysql && net start mysql # Windows
```
---
#### **步骤5:检查防火墙与端口**
确保服务器的防火墙开放了MySQL端口(默认3306):
- **Linux**:
```bash
ufw allow 3306/tcp # Ubuntu
firewall-cmd --permanent --add-port=3306/tcp # CentOS
```
- **Windows**: 在“高级安全防火墙”中添加入站规则。
---
#### **步骤6:验证连接**
使用远程客户端工具(如Navicat)或命令行测试连接:
```bash
mysql -u 用户名 -h 服务器IP -p
```
若仍报错,需检查用户权限是否生效或网络是否可达[^1][^4]。
---
### 安全建议
1. 避免使用`%`开放所有主机,尽量限制为可信IP段。
2. MySQL 8+需注意密码加密方式(如`caching_sha2_password`),部分旧客户端需适配[^5]。
3. 定期审计用户权限,删除无用账户。
---
阅读全文
相关推荐


















