跳过 mysql 服务的认证授权
无论 5.6 还是 5.7 都需要这一步
# 使用 service 停止服务service mysql stop# 或者 systemctl 停止服务systemctl stop mysqld.service# 命令行启动 mysql 跳过认证授权mysqld_safe --skip-grant-tables &# 客户端连接 mysql 服务mysql -u root -p
Mysql5.7 找回 root 密码
注意
- 新版的 mysql 数据库的 user 表中没有 Password 字段
- 将加密后的用户密码存储于 authentication_string 字段
修改密码
mysql> update mysql.user set authentication_string=password('123') where user='root' and Host = 'localhost';mysql> flush privileges;mysql> quit
重启 mysql 服务
# 使用 service 重启服务service mysql restart# 或者使用 systemctl 重启服务systemctl start mysqld.service
连接 mysql,alter user,完成找回密码
mysql> alter user 'root'@'localhost' identified by '123';
Mysql5.6 找回 root 密码
修改密码方法一
mysql> use mysql;mysql> set password for 'root'@'localhost'=password('123');mysql> flush privileges;mysql> quit
修改密码方法二
mysql> use mysql;mysql> update user set password=PASSWORD("123456") where user="root";mysql> flush privileges;mysql> quit
重启 mysql 服务,完成密码找回
# 使用 service 重启服务service mysql restart# 或者使用 systemctl 重启服务systemctl start mysqld.service