MySQL运维——密码找回
背景:
在数据库管理员的平常维护与管理中因为维护密码的文档丢失或者以前更改的密码忘记致使没法登陆MySQL服务器、其它应用程序也没法链接;mysql
若是数据库密码忘记咱们就没法完成工做,这里就教会你们如何快速修改密码,和重置数据库密码,这样在工做中很大提升咱们工做的效率sql
这时候就须要找回MySQL用户密码,小编在此使用以下两种方法(以Linux下MySQL5.7为例):数据库
重启MySQL的方式找回
第一步中止数据库服务器
systemctl stop mysql |
第二步:找到MySQL的my.cnf配置文件,在/etc/my.cnf (有些版本是/etc/mysql/my.cnf)在里面增长下面一段信息:微信
,在my.cnf(mysqld的启动配置文件中添加skip-grant-tables)并发
第三步:启动数据库运维
systemcatl start mysqld |
第四步:登陆mysqld,直接在命令行输入 mysql,并执行如下mysql命令学习
第五步:注释或删除my.cnf配置文件中的 skip-grant-tables测试
第六步:重启mysqld服务,以新密码的方式登陆mysqldspa
systemcat restart mysqld mysql -uroot -p12345678 |
不重启MySQL的方式找回
第一步:找到mysql的数据目录,如小编的是/mysql/datat/3306/data(在my.cnf文件中查看)
第二步:备份cp /mysql/data/3306/data/mysql/user* /mysql/data/backup(望各位养成备份的习惯)
第三步:准备另一台MySQL服务器或者有权限操做某个库的用户;
如小编模拟root用户丢失,但其它用户可登陆而且对test_dd库有操做权限;
第四步:拷贝用户文件至test_dd库目录下,并更改权限
cp /mysql/data/3306/data/mysql/user* /mysql/data/3306/data/test_dd chown mysql:mysql /mysql/data/3306/data/test_dd |
第五步:用其它用户登陆mysqld
mysql -utest -ptest -A |
第六步:修改test_dd.user表;
第七步:复制test_dd库下的user.MYD与user.MYI文件至mysql库下并修改权限
cd /mysql/data/3306/data cp test_dd/user.MYD mysql/ cp test_dd/user.MYI mysql/ chown mysql:mysql mysql/userMYD chown mysql:mysql mysql/userMYI |
第八步:查找mysqld进程号并发送SIGHUP信号,从新加载权限表
第九步:登陆测试
如对小编的文章感兴趣,关注小编公众号我们一块儿学习开发运维相关知识:
本文分享自微信公众号 - 小伟运维开发(xiaowei-dev)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。