今天,我在尝试重置MySQL数据库的root密码时遇到了问题。为了帮助可能处于类似情况的其他人,我正在分享一个教程,概述了对我有用的步骤。
尽管有关此主题的资源有很多,但我希望这篇文章将是一个有用的补充。
要按照以下步骤,您需要使用SSH访问服务器。
使用以下命令停止MySQL进程:
sudo service mysql stop
使用 --skip-grant-tables
选项启动MySQL服务,它允许您在没有密码的情况下连接到MySQL Server:
sudo mysqld_safe --skip-grant-tables &
如果您遇到一个错误,说“ MySQLD_SAFE Directory”/var/run/mysqld for Unix套接字不存在”,请尝试创建目录并使用这些命令设置正确的所有权和权限:
sudo mkdir /var/run/mysqld
sudo chown mysql:mysql /var/run/mysqld
sudo chmod 755 /var/run/mysqld
作为root用户连接到mySQL服务器:
mysql -u root
运行以下mySQL命令重置root密码:
UPDATE mysql.user SET authentication_string=null WHERE User='root';
FLUSH PRIVILEGES;
exit;
作为root用户再次连接到mySQL服务器:
mysql -u root
使用 ALTER USER
命令为root用户设置新密码。确保使用强大的独特密码:
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '{mypassword}';
替换* {mypassword}
**用您所需的密码。*
停止运行的mySQLD进程:
sudo killall -KILL mysql mysqld_safe mysqld
正常启动MySQL进程,然后使用您的新密码登录:
service mysql start
mysql -u root -p