mysql 初始密码弄丢_MySQL Root密码丢失解决方法总结

1. 检查my.cnf,看看有没有密码......靠这也算一条啊

2. 如果能够重启,

首先使用–skip-grant-tables参数重启,然后改密码,再去掉–skip-grant-tables参数重启, 注意–skip-grant-tables的安全问题http://code.openark.org/blog/mysql/dangers-of-skip-grant-tables, 根据火丁笔记http://huoding.com/2011/06/12/85,还需要加上--skip-networking

$ mysqld_safe --skip-grant-tables --skip-networking &

接着使用SQL重置密码后,记得去掉skip-networking,以正常方式重启MySQL服务:

$ /etc/init.d/mysqld restart

上面的方法需要重启两次服务,实际上还能更优雅一点,重启一次即可: 首先需要把用到的SQL语句保存到一个文本文件里(/path/to/init/file):

UPDATE mysql.user SET Password=PASSWORD('...') WHERE User='...' AND Host= '...';

FLUSH PRIVILEGES;

接着使用init-file参数启动MySQL服务,

$ /etc/init.d/mysql stop

$ mysqld_safe --init-file=/path/to/init/file &

此时,密码就已经重置了,最后别忘了删除文件内容,免得泄露密码。

3.on linux / unix ONLY

$ cd data/mysql

$ cp -rp user.MYD bck_user.MYD_`date +%Y%m%d`cp -rp user.MYD /tmp/user.MYD

$ vi /tmp/user.MYD #(edit the hashed passwords next to root*)cp -rp /tmp/user.MYD user.MYD

$ sudo kill -HUP `pidof mysqld`

4.using an init-file

4.这里还有个第四点 using an init-file, which leads to just one restart of the database instead of two. It also avoids the security issue involved with using skip-grant-tables.

5.如果你在MySQL里边,那么可选择的办法就太多了

参考

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值