Host '192.168.10.103' is not allowed to connect to this MariaDB server
错误信息 "Host '192.168.10.103' is not allowed to connect to this MariaDB server" 指出,从 IP 地址 192.168.10.103 尝试连接到 MariaDB 服务器的客户端被拒绝,因为该主机没有被授权访问数据库服务器。
要解决这个问题,你需要按照以下步骤操作:
-
登录到MariaDB:
使用具有足够权限的账户(通常是root
用户)登录到MariaDB服务器。mysql -u root -p
输入相应的密码后,你将进入MariaDB命令行界面。
-
授予权限给特定主机:
在MariaDB命令行中,使用GRANT
语句给来自特定IP地址(在这个例子中是192.168.10.103)的用户授权。假设你的用户名为yourusername
,你可以这样做:GRANT ALL PRIVILEGES ON yourdatabase.* TO 'yourusername'@'192.168.10.103' IDENTIFIED BY 'yourpassword'; FLUSH PRIVILEGES;
这将授予
yourusername
用户从 IP 地址 192.168.10.103 访问yourdatabase
数据库的权限。记得将yourusername
、yourdatabase
和yourpassword
替换为实际的用户名、数据库名和密码。如果你希望该用户可以从任何主机连接,你可以使用通配符
%
代替 IP 地址:GRANT ALL PRIVILEGES ON yourdatabase.* TO 'yourusername'@'%' IDENTIFIED BY 'yourpassword'; FLUSH PRIVILEGES;
但是请注意,允许从任何主机连接可能会增加安全风险。
-
检查MariaDB的用户表:
确保user
表中有相应的条目,允许从指定主机连接。SELECT User, Host FROM mysql.user WHERE User='yourusername';
这条命令将显示所有与
yourusername
相关的条目,以及它们允许连接的主机。 -
检查MariaDB的配置文件:
检查MariaDB的配置文件(通常是/etc/my.cnf
或/etc/mysql/my.cnf
),确认bind-address
是否设置为允许远程连接。如果bind-address
设置为127.0.0.1
,则只接受本地连接。如果你希望接受远程连接,可以将其设置为0.0.0.0
或特定的服务器IP地址。 -
检查防火墙和网络设置:
确保服务器的防火墙允许从192.168.10.103到MariaDB端口的连接(默认是3306)。你可能需要配置防火墙规则来允许这种连接。 -
重启MariaDB服务:
在做出上述更改后,重启MariaDB服务以确保更改生效。systemctl restart mariadb
-
尝试重新连接:
使用 DBeaver 或其他数据库客户端工具,尝试重新连接到MariaDB服务器。
如果你遵循了上述步骤仍然遇到问题,请检查 DBeaver 的连接配置,确保所有设置(如主机名、端口、用户名和密码)都是正确的,并且与你在MariaDB中设置的权限匹配。