天天看点

mysql root 重新启动_Linux之不重启MySQL不知道MySQL的root密码前提下修改MySQL的root用户密码...

摘要

由于半夜加班做MySQL的热加从库,主库不能停机不能锁表,而且事前忘记找老大要MySQL的root权限了。所以只能用特殊方法来解决事情了。。。

这篇文章在此给自己一个深刻的教训,以后不再做类似的事情,危险系数太大,隐患也很大,同时不建议其他人在生产数据库上这样做,万事需要在得到授权的前提下再做。

首先我们要知道MySQL的mysql库中的user表是myisam存储引擎。熟悉我的人都知道,我在Linux学习和使用上走的都是猥琐流。

今天再来次猥琐修改MySQL的root密码的做法。修改密码的时候直接不影响线上服务的使用,不用重启MySQL。。。。

首先我们用vi编辑器打开MySQL数据库数据存储目录下的mysql目录下的user.MYD

然后定位root*,在星号后面其实就是MySQL的root密码的密文。没事情,你是密码我换密文就是了。

mysql root 重新启动_Linux之不重启MySQL不知道MySQL的root密码前提下修改MySQL的root用户密码...

如上图所示153CCFAEAA83407D8DBDBFAA3D17B1A95553E60C这一串是我换上去的,这个密码密文的明文是lookback

使用SQL语句生产加密的密文密码:

MariaDB [(none)]> select password('lookback'),concat('*',sha1(unhex(sha1('lookback'))));

+-------------------------------------------+-------------------------------------------+

| password('lookback') | concat('*',sha1(unhex(sha1('lookback')))) |

+-------------------------------------------+-------------------------------------------+

| *153CCFAEAA83407D8DBDBFAA3D17B1A95553E60C | *153ccfaeaa83407d8dbdbfaa3d17b1a95553e60c |

+-------------------------------------------+-------------------------------------------+

1 row in set (0.00 sec)

MariaDB [(none)]> select password('ODRjODRlNDBmZmVl'),concat('*',sha1(unhex(sha1('ODRjODRlNDBmZmVl'))));

+-------------------------------------------+---------------------------------------------------+

| password('ODRjODRlNDBmZmVl') | concat('*',sha1(unhex(sha1('ODRjODRlNDBmZmVl')))) |

+-------------------------------------------+---------------------------------------------------+

| *6BB68AC583D98E81AB45471685B2DCCE5E7DD4ED | *6bb68ac583d98e81ab45471685b2dcce5e7dd4ed |

+-------------------------------------------+---------------------------------------------------+

1 row in set (0.00 sec)

MariaDB [(none)]>

使用shell 命令生产加密的密文密码:

[[email protected] ~]# mysql -uroot -p <<< "select password('lookback');"

Enter password:

password('lookback')

*153CCFAEAA83407D8DBDBFAA3D17B1A95553E60C

mysql root 重新启动_Linux之不重启MySQL不知道MySQL的root密码前提下修改MySQL的root用户密码...

修改好之后执行下面的命令

kill -SIGHUP `ps aux | pgrep mysqld`

上面命令的作用就是用SIGHUP信号产生的行为类似于flush命令的作用。

这些都做好了?那就可以使用修改后的密码登录root用户了。so easy。。。。

mysql root 重新启动_Linux之不重启MySQL不知道MySQL的root密码前提下修改MySQL的root用户密码...