CentOS 7 MySql 5.7密码重置问题

按照这篇文章在CentOS 7上安装mysql,我选择的mysql版本是5.7.17。

1.安装完成后,在此环境下,使用systemd控制mysql的启动,停止(因此没有mysql_safe脚本)。

#检查mysql状态
systemctl status mysqld
#启动
systemctl start mysqld
#停止
systemctl stop mysqld
#设置mysql开机自启动
systemctl enable mysqld

 2.重置密码的相应操作如下:

1. Stop mysql:
systemctl stop mysqld

2. Set the mySQL environment option 
systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"

3. Start mysql usig the options you just set
systemctl start mysqld

4. Login as root
mysql -u root

5. Update the root user password with these mysql commands
mysql> UPDATE mysql.user SET authentication_string = PASSWORD('MyNewPassword')
    -> WHERE User = 'root' AND Host = 'localhost';
mysql> FLUSH PRIVILEGES;
mysql> quit

6. Stop mysql
systemctl stop mysqld

7. Unset the mySQL envitroment option so it starts normally next time
systemctl unset-environment MYSQLD_OPTS

8. Start mysql normally:
systemctl start mysqld

Try to login using your new password:
7. mysql -u root -p

 

3.补充:按以上步骤操作时,设置参数后重启报错,检查错误日志(默认位置:/var/log/mysqld.log),发现设置--skip-grant-tables参数后,无法识别密码相关参数:validate_password_policy,validate_password_length。在配置文件/etc/my.cnf中暂时注释这两个参数后,操作成功。

猜你喜欢

转载自aseara.iteye.com/blog/2333894