当前位置: 代码迷 >> 综合 >> 在Navicat删除用户后报错 ERROR 1130 (HY000)解决办法!
  详细解决方案

在Navicat删除用户后报错 ERROR 1130 (HY000)解决办法!

热度:94   发布时间:2023-12-04 09:48:34.0

      昨天博主在把玩Navicat for mysql 时手残一不小心把数据库唯一一个用户给删除掉了!!!

造成的结果就是数据库连接不上,从cmd也进不去数据库,万念俱灰的感觉啊555

ERROR 1130 (HY000): Host ‘localhost’ is not allowed to connect to this MySQL server

 在我苦苦搜索四五个小时后试了各种方法都不见效,在放弃的前一刻突然闪现处一个神奇的教程,是的它拯救了这个问题,所以我要把这个方法给放出来,留给和我一样的数据库小白且手残的人!

网上找了很多方法,控制台输入以下命令进不去了。(账号、密码:root)
mysql -u root -proot
都不行,出现错误!(因为这时你的数据库已经没有用户了)
“Host ‘localhost’ is not allowed to connect to this MySQL server.” 

解决方法:

一、首先停止mysql服务

  • 方法一 :控制台输入 sc stop mysql(推荐)
  • 方法二:此电脑(右键)–>管理–>点击服务和应用程序–>服务–>找到MySQL–>停止服务

二、打开一个终端(window键+R,然后输入cmd)

  • mysqld --skip-grant-tables

三、另开一个终端,继续

  • mysqlcheck --check-upgrade --all-databases --auto-repair

四、进入SQL控制台

  • mysql

五、重新启动Navicat

     不出意外地话此时你已经可以进入到数据库中了,因为用了mysqld --skip-grant-tables这个命令是你可以跳过数据库的账号密码验证就可以访问到数据库,所以你现在用任意密码都能进入到数据库,这时你就可以用命令添加一个新用户!

进入到MySQL>     使用下面的代码!

create user zhrt@localhost identified by '123456'; #添加用户
create user 'zhrt'@'%' identified by '123456';     #允许其他主机访问用户
grant all privileges on dbname.* to zhrt@localhost identified by '123456';#授予用户所有权限
grant all privileges on dbname.* to 'zhrt'@'%' identified by '123456';#授予用户通过外网IP对于该数据库的全部权限
flush privileges; #刷新权限

完美解决!

  相关解决方案