Mysql重置密码

Mysql 安装的时候忘记保存默认密码,需要重置密码;
忘记密码

1. 跳过Mysql密码认证

1
vim /etc/my.cnf

在文档内[mysqld]第一行添加skip-grant-tables用来跳过密码验证的过程
跳过密码认证

2. 重启Mysql

1
2
3
4
service mysqld restart

#或者
systemctl restart mysqld

然后再输入mysql -uroot -p 一直按enter 就可以顺利进入数据库

1
2
3
show databases;
use mysql;
select * from user;

跳过密码认证

3. 创建用户

1
2
3
4
create user 'root'@'localhost' identity by '123456';

-- lolcahost表示本地,mysql登陆的时候不用指定IP登陆
-- 如果需要外网访问,则将localhost改成 %

此步骤可能会报以下错误,没报错的跳过第4步

1
2
3
4
5
6
7
mysql> ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
#输入
mysql> flush privileges;刷新配置


# 再次创建用户
mysql> create user 'root'@'localhost' identity by '123456';

创建用户
再次报错,这步没报错的也是直接跳到赋予权限那一步,报错的以下操作:

1
2
mysql> drop user 'root'@'localhost';
mysql> create user 'root'@'localhost' identified by '123456';

4. 赋予root权限

1
2
3
4
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION; 
#赋予所有库所有表操作权限
mysql> flush privileges;
mysql> exit;

赋予权限
再次查询user表,会发现用户表新建了一个root用户

5. 修改配置文件

1
2
3
4
5
6
7
vim /etc/my.cnf

##删除配置
#skip-grant-table=1

##保存并重启mysql
service myqld restart