Step 1
关闭mysql服务。无论你有没有开启mysql服务,保险起见都要运行一下以下命令。
sudo /usr/local/mysql/support-files/mysql.server stop
Step 2
安全模式启动mysql。
sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
安全模式下,可以直接打开mysql命令行窗口,而不需要密码。
Step 3
修改root密码。
此处注意,5.7较之之前的版本,mysql.user表里面的password字段改成了:authentication_string
逐一输入以下命令,修改root密码并退出。
sudo /usr/local/mysql/bin/mysql -u root
UPDATE mysql.user SET authentication_string=PASSWORD('123456') WHERE User='root';
FLUSH PRIVILEGES;
step 4
发现表中密码过期,密码过期状态(password_expired字段值)是否为Y,Y表示已过期,需要修改为N
SELECT host,User,password_expired FROM mysql.user WHERE User='root';
UPDATE mysql.user SET password_expired='N' WHERE User='root';
FLUSH PRIVILEGES;
step 4
测试
\q
sudo /usr/local/mysql/support-files/mysql.server stop
sudo /usr/local/mysql/support-files/mysql.server start
sudo /usr/local/mysql/bin/mysql -u root -p
网友评论