1130-不允许主机‘192.168.X.X’连接到此MariaDB问题解决
错误信息 1130 - 不允许主机 '192.168.X.X' 连接到此 MariaDB 服务器
表示你的 MariaDB 服务器配置不允许来自 IP 地址 192.168.1.11
的连接。
这通常是因为 MariaDB 的访问控制规则或者防火墙设置限制了外部 IP 的访问或者权限问题。解决的步骤如下:
1. 确认 MariaDB 配置文件中的绑定地址
MariaDB 默认配置为只允许本地连接(即 127.0.0.1
或 localhost
),如果你希望从其他主机(例如 192.168.1.11
)连接,必须调整 my.cnf
配置文件。
- 打开 MariaDB 配置文件,通常位于
/etc/mysql/my.cnf
或/etc/my.cnf
:
sudo nano /etc/mysql/my.cnf
- 找到
bind-address
配置项,它可能是这样的:
bind-address = 127.0.0.1
这表示只允许本机连接。如果你希望允许任何 IP 连接,可以将其更改为:
bind-address = 0.0.0.0
或者,如果你只希望允许来自特定 IP 地址的连接,可以设置为:
bind-address = 192.168.1.11
- 保存并关闭文件后,重新启动 MariaDB 服务:
sudo systemctl restart mariadb
2. 检查 MariaDB 用户的权限
如果你已经修改了 bind-address
,但仍然无法连接,可能是由于 MariaDB 中的用户权限设置不允许来自 192.168.1.11
的连接。你需要确保为用户配置正确的权限。
- 登录到 MariaDB 数据库:
sudo mysql -u root -p
- 确认你的 MariaDB 用户具有从特定 IP 地址连接的权限。例如,如果你要允许用户
username
从 IP192.168.1.11
连接,请执行以下 SQL 命令:
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'192.168.1.11' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
database_name
替换为你希望该用户访问的数据库名称。username
替换为用户名。password
替换为密码。如果你希望允许该用户从任何 IP 地址连接,可以使用%
通配符:
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'%' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
- 退出 MariaDB:
EXIT;
3. 检查防火墙设置
如果你已经配置了 MariaDB 允许外部连接,但仍然遇到问题,可能是防火墙阻止了对 MariaDB 端口(通常是 3306)的访问。你需要确保防火墙允许来自 192.168.1.11
的访问。
对于 ufw
防火墙(Ubuntu/Debian):
- 允许 MariaDB 端口(3306):
sudo ufw allow from 192.168.1.11 to any port 3306
- 如果你希望允许任意 IP 地址连接:
sudo ufw allow 3306
- 重载防火墙:
sudo ufw reload
对于 firewalld
防火墙(CentOS/RHEL):
- 允许 MariaDB 端口(3306):
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
- 重载防火墙:
sudo firewall-cmd --reload
4. 检查 SELinux 配置(如果适用)
在一些基于 CentOS 或 RHEL 的系统上,SELinux 可能会限制外部连接。你可以检查 SELinux 是否阻止了 MariaDB 的外部连接。
- 检查 SELinux 的状态:
getenforce
- 如果返回值为
Enforcing
,可以临时设置为宽松模式来测试连接:
sudo setenforce 0
如果连接成功,可以通过配置 SELinux 策略来允许 MariaDB 外部连接。
- 永久修改 SELinux 配置:编辑
/etc/selinux/config
文件,将SELINUX=enforcing
改为SELINUX=permissive
,然后重启系统。
5. 确认 MariaDB 服务正在运行
确保 MariaDB 服务正常运行并且没有被防火墙或其他配置阻止。
sudo systemctl status mariadb
如果服务没有运行,可以使用以下命令启动它:
sudo systemctl start mariadb
总结:
- 修改
my.cnf
配置文件,允许 MariaDB 绑定到外部 IP 地址。 - 授予正确的用户权限,允许从
192.168.1.11
连接。 - 检查防火墙设置,确保 3306 端口开放。
- 检查 SELinux 设置,确保没有阻止 MariaDB 外部连接。
按照上述步骤操作后,应该可以解决 1130 - 不允许主机 '192.168.1.11' 连接到此 MariaDB 服务器
的问题。如果问题依然存在,可以检查日志文件来获取更多错误信息。
本文系作者 @CXCBLOG(剑弗) 原创发布在CXCBLOG站点。未经许可,禁止转载。
暂无评论数据