centos mysql8.0 重置密码
时间: 2025-01-10 13:53:21 浏览: 63
### 如何在 CentOS 上重置 MySQL 8.0 的 Root 用户密码
#### 停止并重启 MySQL 数据库服务
为了安全地更改 `root` 密码,需先停止当前运行的 MySQL 或 MariaDB 服务,并以跳过权限表的方式启动它。
```bash
sudo systemctl stop mysqld.service
sudo mkdir /var/run/mysqld/
sudo chown mysql:mysql /var/run/mysqld/
sudo mysqld_safe --skip-grant-tables &
```
上述命令会创建必要的目录结构来支持无授权模式下的 MySQL 运行[^1]。
#### 登录到 MySQL 并执行 SQL 查询语句
此时可以无需提供任何凭证就能连接至数据库服务器:
```sql
mysql -u root
```
一旦成功登录,则可继续操作以更新 `root` 账户的信息。首先切换到默认的安全配置文件所在的数据库:
```sql
USE mysql;
```
接着查询现有的认证方式以及散列后的密码字符串以便了解现状:
```sql
SELECT Host, User, Authentication_String AS PasswordHash, Plugin FROM users WHERE User = 'root';
```
这一步骤有助于确认后续应采取的具体措施[^3]。
对于那些使用了插件验证机制而非传统哈希算法存储密码的情况,建议通过下面的方法将其改为更简单的形式——即移除现有密码后再重新设定新的强密钥组合:
```sql
UPDATE user SET authentication_string = '' WHERE User = 'root';
FLUSH PRIVILEGES;
```
此过程将清除掉旧有的身份验证数据,并立即生效这些变更[^5]。
最后按照标准流程为管理员角色指定一个新的高强度口令:
```sql
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourStrongPassword!';
FLUSH PRIVILEGES;
EXIT;
```
这里替换了 `'YourStrongPassword!'` 成一个复杂度较高的实际值作为最终的目标状态[^2]。
#### 完成设置后恢复正常的服务运作
完成以上所有步骤之后,记得要正常关闭临时实例并将常规守护进程恢复在线:
```bash
sudo pkill -9 mysqld
sudo rm -rf /var/run/mysqld/*
sudo systemctl start mysqld.service
```
现在应该能够凭借刚刚定义的新凭据访问管理控制台了。
阅读全文
相关推荐


















