mysql8.0以后的ERROR 1130 (HY000): Host ‘localhost‘ is not allowed to connect to this MySQL server

在更换网络后无法连接数据库,尝试使用skip-grant-tables失败,因为MySQL8.0不支持直接在my.ini中添加该选项。解决方案包括停止MySQL服务,删除ib_logfile文件,然后通过命令行以skip-grant-tables启动MySQL,再用新窗口登录并修改root用户的host为%,最后flushprivileges使更改生效。

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

由于通过命令改远程链接,我换了其他网络后链接不上数据库。

use mysql;

update user set host='XX.XX.XX.XX';

报错:

经过网上查阅一番使用skip-grant-tables来处理,发现还是不ing,然后才发现mysql8.0之后的版本都不支持在my.ini直接加skip-grant-tables,所以这方法行不通。

网上参考了其他人的方案后,记录一下我的解决过程。

  1. 停止mysql服务,命令 :net stop mysql 或者 通过服务来关闭

  1. 找到mysql安装目录 下的data目录 删除ib_logfile0 和ib_logfile1两个文件。

3.打开cmd,使用管理员权限打开,找到mysql安装目录 下的bin目录,执行命令:mysqld --console --skip-grant-tables --shared-memory,注意执行命令后 不要关闭和其他动作。

  1. 然后重新打开一个窗口,之前那个不能关,一样打开cmd,使用管理员权限打开,找到mysql安装目录 下的bin目录 运行命令:mysql -uroot -p,然后输入密码,即可进入mysql。

最后通过命令修改,让所有主机包括localhost连接到mysql,使用%替换localhost,然后flush privileges。命令如下:

use mysql

update user set host = '%' where user = 'root';

flush privileges;

本文参考:https://blog.youkuaiyun.com/qq_45721173/article/details/119053873

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值