背景
以前装的mysql数据库忘记了root密码,查了下重置密码方法,记录一下。
重置方法
关闭mysql进程
可以使用命令来关闭:
1
2
3sudo /usr/local/mysql/support-files/mysql.server stop
Shutting down MySQL
.. SUCCESS!或者在 系统偏好设置 - MySQL 中点击 “Stop MySQL Server”。
进度mysql安全模式
1
sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
这里会提示输入密码,就是你mac的密码就好了。
另开一个进程,直接使用root用户登录
1
2
3
4
5sudo /usr/local/mysql/bin/mysql -u root
Password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 8.0.13 MySQL Community Server - GPL修改root密码
1
2
3
4
5
6
7
8
9
10
11
12
13use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
flush privileges;
Query OK, 0 rows affected (0.01 sec)
alter user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'XXXX';
Query OK, 0 rows affected (0.16 sec)
quit;
Bye关闭mysql进程
这里建议还是用命令来关,通过 系统偏好设置 里面关,可能关闭失败。命令如下:
1
2
3sudo /usr/local/mysql/support-files/mysql.server stop
Shutting down MySQL
.. SUCCESS!再次启动mysql即可
1
2
3
4sudo /usr/local/mysql/support-files/mysql.server restart
ERROR! MySQL server PID file could not be found!
Starting MySQL
. SUCCESS!
注意
- Mac sudo密码
网上有种方式是要启用mac的root用户,先su之后在操作。实践了一下,直接使用sudo前缀,用自己的mac用户密码就可以了。
mysql加密方式
在重置密码的时候,如果使用的是:1
alter user 'root'@'localhost' IDENTIFIED BY 'XXXX';
也是可以登录成功的,但是这样会使用默认加密方式,使用Navicat登录时会有个“caching_sha2_password”的错误。
需要将加密方式修改为普通方式(
mysql_native_password
):1
alter user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'XXXX';