host mysql server_Host "localhost " is not allowed to connect to mysql server 解决方法

背景:在一个阴雨绵绵的下午,dunmu来对我说,他数据库的数据蹦了,想要我把数据导给他。我一脸嫌弃的照做了,结果他说他导不进去,报一批按错(默哀,貌似我之前也遇到过 咳咳~).

寻求无果,然后想出连接我本地数据操作的方案,然后就继续,貌似不予许,然后找答案......

傻逼的把mysql数据库下user的root用户的Host字段改成了*, 然后重启一下,呵呵~ Host "localhost " is not allowed to connect to mysql server,连本地就禁用了,,,

解决:通过丢丢时间的纠结和查找,终于找到了个不靠谱的解决方案(我也不知道啊QAQ),,,

首先停止mysql服务:

net stop mysql

然后:

mysqld --skip-grant-tables

另开一个终端,继续

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

然后再输入

mysql

就可以进入MySQL控制台了,无需密码也能进入,,,

注意:结果是数据库被还原了,之前的数据全没了,回到了刚安装MySQL的时候,,,  所以,操作需谨慎啊!!! o.oi

有幸的是,数据库被还原并不代表数据被清除了!

下面才是新发现,介绍一个非常有用的mysql启动参数—— --skip-grant-tables。 顾名思义,就是在启动mysql时不启动grant-tables,授权表。有什么用呢?当然是忘记管理员密码后有用。

如果你忘记了mysql密码几乎是没有什么好办法可以直接修改密码了,但我们可以在my.ini把加上skip-grant-tables,然后重启mysql就不需要密码了,这时我们再修改root密码,最后再把skip-grant-tables注释或删除重启即可。

usemysql;update user set password=password('12345') where user='root';

flushprivileges;exit;

新安装,提示无密码时,可以使用语句SET PASSWORD

shell > mysql -uroot -p

mysql>mysql> SET PASSWORD = PASSWORD('newpass');

听说my.ini 加上这句 skip-name-resolve ,远程连接速度会变快,但是也有注意点,mysql.user 表里面的 host 不要用 localhost 之类的,要用IP表示,如127.0.0.1不然连自己都连不上数据库,会报错。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值