昨天博主在把玩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; #刷新权限
完美解决!