修改或忘记MySQL密码

一、创建/修改MySQL密码

刚装好只能允许一个本地账户root@localhost访问

刚开始默认无密码

新增密码root,输入此命令后回车再回车即可

修改密码,输入此命令后回车,输入原密码后回车即可

mysqladmin -uroot -p password root

二、忘记MySQL密码

2.1 关闭数据库

/etc/init.d/mysqld stop
systemctl stop mysqld

2.2 启动数据库到维护模式

mysqld_safe --skip-grant-tables --skip-networking &

--skip-grant-tables:跳过授权表,也就是启动时不用输入账号密码

--skip-networking:跳过远程登录

此方法只能本地修改

2.3 查询用户跟密码

注意,5.7存放密码字段为authentication_string

找到需要修改密码的用户

mysql> select user,host,authentication_string from mysql.user;
+---------------+-----------+-------------------------------------------+
| user          | host      | authentication_string                     |
+---------------+-----------+-------------------------------------------+
| root          | localhost | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| mysql.session | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| mysql.sys     | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
+---------------+-----------+-------------------------------------------+
3 rows in set (0.00 sec)

2.4 刷新授权表

因为使用了--skip-grant-tables参数,所以需要刷新授权表

flush privileges;

2.5 使用授权命令修改密码

grant all on *.* to root@'localhost' identified by 'toor';

等同于

alter user root@'localhost' identified by 'toor';

2.6 重启数据库

猜你喜欢

转载自www.cnblogs.com/tz90/p/12323660.html