文章

重置MySQL数据库root密码

重置MySQL数据库root密码

引言

在使用MySQL数据库时,忘记密码是一个常见的问题。本文将详细介绍如何在Linux环境下重置MySQL的root密码。我们将探讨两种主要方法:使用SHA2函数和使用PASSWORD函数,以适应不同版本的MySQL。

步骤

步骤一:停止MySQL服务

首先,我们需要停止当前的MySQL服务。打开终端并执行以下命令:

1
sudo systemctl stop mysql

步骤二:启动MySQL服务并跳过权限表

为了能够修改密码,我们需要以跳过权限表的方式启动MySQL服务:

1
sudo mysqld_safe --skip-grant-tables &

如果无法启动提示文件夹不存在的话执行下面命令:

1
2
3
sudo mkdir -p /var/run/mysqld  
sudo chown mysql:mysql /var/run/mysqld  
sudo chmod 755 /var/run/mysqld  

步骤三:登录MySQL

由于我们跳过了权限表,可以直接以root用户登录MySQL:

1
mysql -u root

步骤四:修改密码

方法一:使用SHA2函数(适用于MySQL 5.7及以上版本)

在MySQL提示符下,执行以下命令:

1
2
3
4
USE mysql;
UPDATE user SET authentication_string=SHA2('password', 256) WHERE User='root' AND Host='localhost';
FLUSH PRIVILEGES;
EXIT;

方法二:使用PASSWORD函数(适用于MySQL 5.6及以下版本)

如果你使用的是较旧版本的MySQL,可以尝试以下命令:

1
2
3
4
USE mysql;
UPDATE user SET password=PASSWORD('password') WHERE User='root' AND Host='localhost';
FLUSH PRIVILEGES;
EXIT;

步骤五:重启MySQL服务

完成密码修改后,重启MySQL服务以使更改生效:

1
sudo systemctl start mysql

注意事项

使用--skip-grant-tables选项会跳过权限验证,存在安全风险。建议在安全的环境下操作,并在操作完成后立即重启服务。

本文由作者按照 CC BY 4.0 进行授权