mysql 忘记root密码

mysql 忘记root密码

Posted by ivo on September 12, 2018

又一次忘了root密码,充分验证那句话,「平时爱藏东西的人,最容易丢东西」.平常喜欢临时的设置一些稀奇古怪的密码,那么忘记是必然的.没办法再次各种搜索,记录下来全过程.

首先不管是编译安装的还是源安装的,先要做的第一步是找到my.cnf文件,也可能是my.ini(windows下面),找到以后编辑 在[mysqld] 这个选项下面去添加一行代码,skip-grant-tables,如果内有mysqld 手动的添加一个写上即可.

修改配置文件

vim /etc/mysql/my.cnf

[mysqlq]
skip-grant-tables

保存后退出

启动mysql服务

sudo systemctl start mysqd 如过没有报错那么启动正常

更改root密码

mysql 

mysql> use mysql; ##使用mysql数据库
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> update user set password=password("123456") where user="root";##更新密码
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4  Changed: 4  Warnings: 0

mysql> flush privileges;##刷新权限
Query OK, 0 rows affected (0.00 sec)

收尾工作

ps -ef之后查找mysql相关的进程kill掉,也可以killall mysqld(这个方法不一定都有效,还是手动的查找靠谱),然后把配置文件里面的那个添加进去的句子注释掉(不注释掉谁都可以重置mysql的root密码了),之后再启动mysqld sudo systemctl start mysqld 就可以用新密码登录了.