错误1130- Host xxx is not allowed to connect to this MariaDb server

本文介绍了解决MySQL远程登录失败的问题方法,包括开启3306端口、更新users表中host字段及授权用户等步骤。

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

navicat 连接mysql报错:

1130- Host xxx is not allowed to connect to this MariaDb server

解决方案:

1.确保服务器开启了3306端口。

2.改表法:

mysql -u root -p
mysql>use mysql;
mysql>update user set host = '%' where user = 'root'  and host='localhost';
mysql>select host, user from user;

MariaDB [mysql]> flush privileges;

3.授权法:

例如,你想root使用mypassword从任何主机连接到mysql服务器的话。

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

FLUSH   PRIVILEGES;

如果你想允许用户root从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码

GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

FLUSH   PRIVILEGES;

如果你想允许用户root从ip为192.168.1.6的主机连接到mysql服务器的test数据库,并使用mypassword作为密码

GRANT ALL PRIVILEGES ON test.* TO 'root'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

FLUSH   PRIVILEGES;

 

 

 

 

在安装mysql的机器上运行:
mysql -u root -password
mysql>usemysql;
mysql>update user set host = '%' where user ='root';
mysql>select host, user from user;
mysql>flush  privileges;
---------------------

原文:https://blog.youkuaiyun.com/davidyezhiwei/article/details/77295402

 

 

 

这个错误,其实就是我们的MySQL不允许远程登录,所以远程登录失败了,解决方法如下:

  1. 在装有MySQL的机器上登录MySQL mysql -u root -p密码
  2. 执行use mysql;
  3. 执行update user set host = '%' where user = 'root';这一句执行完可能会报错,不用管它。
  4. 执行FLUSH PRIVILEGES;

    经过上面4步,就可以解决这个问题了。 
    注: 第四步是刷新MySQL的权限相关表,一定不要忘了,我第一次的时候没有执行第四步,结果一直不成功,最后才找到这个原因

原文:http://blog.youkuaiyun.com/bingjianit/article/details/54384299

转载于:https://www.cnblogs.com/anyiz/p/10658109.html

MariaDB 连接错误 **ERROR 1130 (HY000): Host 'localhost' is not allowed to connect to this MariaDB server** 通常表示数据库用户权限配置存在问题,导致本地连接被拒绝。以下是可能的原因和解决方案: ### 原因分析 1. **用户权限表中缺失或错误的 `host` 配置** 在 `mysql.user` 表中,`root` 用户或其他相关用户的 `host` 字段未正确设置为 `localhost` 或 `%`,从而导致无法通过本地连接[^2]。 2. **误删了 `root@localhost` 用户** 如果该用户被删除,将导致无法使用 `root` 账户通过 `localhost` 登录系统[^3]。 3. **权限未刷新** 修改了用户权限后,如果没有执行 `flush privileges;`,更改不会立即生效[^4]。 --- ### 解决方案 #### 方法一:检查并更新 `mysql.user` 表中的 `host` 字段 1. 使用具有管理员权限的账户登录 MariaDB: ```bash mysql -u root -p ``` 2. 切换到 `mysql` 数据库: ```sql use mysql; ``` 3. 查询当前用户及其主机限制: ```sql select host, user from user where user = 'root'; ``` 4. 更新 `host` 字段为允许远程和本地连接(如果需要): ```sql update user set host = '%' where user = 'root' and host = 'localhost'; ``` 5. 刷新权限: ```sql flush privileges; ``` #### 方法二:恢复 `root@localhost` 用户 如果发现 `root@localhost` 用户被删除,可以通过以下步骤重新创建该用户: 1. 登录 MariaDB: ```bash mysql -u root -p ``` 2. 创建新的 `root` 用户,并允许从 `localhost` 登录: ```sql create user 'root'@'localhost' identified by 'your_password'; ``` 3. 授予所有权限(根据实际需求调整): ```sql grant all privileges on *.* to 'root'@'localhost' with grant option; ``` 4. 刷新权限: ```sql flush privileges; ``` --- ### 预防措施 - 定期备份 `mysql` 数据库,尤其是 `user` 表。 - 修改用户权限时务必谨慎,避免误删关键用户。 - 对于生产环境,建议限制 `root` 的访问权限,仅允许特定 IP 地址访问。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值