MySQL(MariaDB):解决“ Host ‘*‘ is not allowed to connect to this MariaDB server”

本文指导如何检查并设置MySQL远程访问权限,包括检查现有用户、授权新用户、刷新权限和调整防火墙设置。适合解决权限问题新手。

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

简单的权限问题,原因: 

        MySQL没有设置远程(或局域网)的访问权限

可以先查询当前mysql的用户都有什么,顺手把没用的清一清。  如果和图中一样有一条 host=% 的用户信息,那么它其实就是一个远程访问这个mysql的账号。就不用再设置了。

如果没有或者是忘记了密码,就执行下条命令:

MariaDB [(none)]> grant all privileges on *.* to '用户名'@'%' identified by ‘密码’ with grant option;

注释: 第一个 * ,表示被授权访问的库

            第二个 *, 表示库下的所有表

            '用户名'@'%'  用户名 表示授权用户,%表示任意的ip地址

          【identified by ‘密码’】  访问mysql的密码  如果想要设置免密码访问,这条可以去掉

整句命令的意思就是,允许在任何IP地址上用这个用户名和密码来访问这个mysql。

MariaDB [(none)]> flush privileges;

更新服务, 或者直接重启mariadb server也行

如果还是连不上mysql,就关一下服务器的防火墙

        systemctl stop firewalld.service

如果还是连不上,查看一下3306端口是否已经开放。

.The End


当遇到 "Host '192.168.250.190' is not allowed to connect to this MariaDB server" 的错误时,这意味着MariaDB服务器配置中没有允许从该特定IP地址连接。这可能是出于安全考虑设置的,或者是防火墙规则阻止了访问。 解决这个问题需要按照以下步骤操作: 1. **检查my.cnf文件**:找到MySQL/MariaDB的配置文件(通常是`/etc/mysql/my.cnf` 或 `my.ini`),查找 `bind-address` 或 `skip-networking` 配置项,确认是否设置了IP限制。 如果有 `bind-address = 127.0.0.1` 这样的设置,你需要将其改为允许所有IP连接,如 `bind-address = 0.0.0.0`。或者删除这个行以启用网络连接。 2. **修改权限**:在`mysql.user`表中,查看该IP是否有对应的用户,并且权限是否足够。如果没有,可以添加一个新的用户并指定正确的主机权限,例如: ``` GRANT ALL PRIVILEGES ON *.* TO 'new_user'@'%' IDENTIFIED BY 'password'; FLUSH PRIVILEGES; ``` 其中,`%` 表示允许从任何IP连接。 3. **更新防火墙规则**:如果是在Linux上,检查防火墙(比如iptables或ufw)规则是否阻止了该IP。可能需要临时关闭防火墙或者针对该IP开放端口(默认是3306端口)。 4. **重启服务**:重启MariaDB服务使其应用新的配置: ```bash sudo service mariadb restart ``` 完成以上步骤后,再次尝试从 '192.168.250.190' IP连接应该就可行了。如果问题依然存在,确认网络环境以及检查日志文件可能会提供更多信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值