重置MySQL root密码(版本8及以上)
#database #mysql #firstpost

今天,我在尝试重置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