Loading

MySQL5.7忘记root密码

Ubuntu

方式1:

① 停止MySQL服务

sudo service mysql stop

② 修改MySQL配置文件

sudo vim /etc/mysql/my.cnf
在 [mysqld] 下增加 skip-grant-tables
保存退出

③ 启动MySQL服务

sudo service mysql start

④ 直接登录MySQL

mysql,回车

⑤ 修改root用户密码

UPDATE mysql.user SET authentication_string = password('112233') where user = 'root';

⑥ 刷新权限

FLUSH PRIVILEGES;

⑦ 退出

exit

⑧ 停止MySQL服务

sudo service mysql stop

⑨ 修改MySQL配置文件

sudo vim /etc/mysql/my.cnf
在 [mysqld] 下删除 skip-grant-tables
保存退出

⑩ 启动MySQL服务,正常使用

sudo service mysql start



方式2:

① 停止MySQL服务

sudo service mysql stop

② 跳过权限表验证的方式启动MySQL

/usr/bin/mysqld_safe --skip-grant-tables
此时会启动守护进程:

2022-05-28T15:39:22.689270Z mysqld_safe Logging to syslog.
2022-05-28T15:39:22.691662Z mysqld_safe Logging to '/var/log/mysql/error.log'.
2022-05-28T15:39:22.708161Z mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql

若出现类似错误:

2022-05-28T15:15:36.377410Z mysqld_safe Logging to syslog.
2022-05-28T15:15:36.379927Z mysqld_safe Logging to '/var/log/mysql/error.log'.
2022-05-28T15:15:36.382318Z mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.

解决方式:

mkdir -p /var/run/mysqld
chown mysql:mysql /var/run/mysqld

③ 打开新的shell,直接登录MySQL

mysql,回车

④ 修改root用户密码

UPDATE mysql.user SET authentication_string = password('112233') where user = 'root';

⑤ 刷新权限

FLUSH PRIVILEGES;

⑥ 退出

exit

⑦ kill掉 mysqld_safe 进程

pgrep -f mysqld_safe | xargs kill -9

⑧ 启动MySQL服务,正常使用

sudo service mysql start



Windows

① 停止MySQL服务,管理员打开cmd

net stop mysql

② 跳过权限表验证的方式启动MySQL

mysqld --skip-grant-tables
之后该窗口将无法再继续操作
image

③ 打开新的cmd,直接登录MySQL

mysql,回车

④ 修改root用户密码

UPDATE mysql.user SET authentication_string = password('112233') where user = 'root';

⑤ 刷新权限

FLUSH PRIVILEGES;

⑥ 退出

exit

⑦关闭运行临时跳过权限表启动的MySQL窗口


⑧启动MySQL服务,管理员打开cmd

net start mysql

⑨正常登陆mysql

mysql -u root -p
image

posted @ 2021-05-10 10:57  Convict  阅读(261)  评论(0编辑  收藏  举报