修改 MySQL 5.7 登录密码

1. 背景

没有密码无法登录 MySQL

2. 原理

修改 MySQL 的配置文件 my.cnf,使得可以跳过授权表进入 MySQL,相当于免密码登录。因为所有的用户信息都存储在 mysql 库的 user 表中,所以只要找到 user 表中用户的密码字段,然后修改密码值即可。

3. 修改密码

3.1 开启免密登录

Linux 所有的配置文件默认都放在/etc目录,MySQL 的配置文件通常命名为my.cnf,当 /etc 目录中存在重复文件时,会自动重命名。

  • 跳过授权:skip-grant-tables
vim /etc/my.cnf #vim 打开配置文件

按 i 进入 vim 的插入模式,末尾追加 skip-grant-tables,按 esc 键返回一般模式,输入:wq保存并退出 my.cnf 文件。

配置文件更新要重启 MySQL 服务后,然后免密登录

service mysqld restart 			  #重启 MySQL
mysql -u root -p 							#不用输入密码直接两次回车登录 MySQL

3.2 修改 user 表

5.6 版本 user 表中密码字段为 password,5.7 版本则为authentication_string。也可 select 查看一下具体字段。

--打开数据库
use mysql;

--查看 root 用户的表字段
select * from user where user = "root"; 

--修改 root 用户密码
update user set authentication_string = password("root1234") where user = "root"; 

--刷新 MySQL 配置
flush privileges; 

--退出 MySQL
quit 							

3.3 退出免密登录

密码已经重新设置好,关闭免密登录就是去把配置文件中的 skip-grant-tables 删除

vim /etc/my.cnf

找到 skip-grant-tables 所在行,vim 一般模式下按下 dd 删除当前行,:wq 保存退出 my.cnf,然后重启 MySQL ,新密码生效。

service mysqld restart 		#重启 MySQL

猜你喜欢

转载自blog.csdn.net/qq_43220213/article/details/129608729
今日推荐