温馨提示×

centos怎么重置mysql密码

小樊
45
2026-10-26 06:33:53
栏目: 云计算

在 CentOS 上重置 MySQL / MariaDB 密码,常见做法如下(以 MySQL 5.7 / 8.0 和 MariaDB 为例)。


一、先确认是 MySQL 还是 MariaDB

mysql --version
  • 显示 MariaDB → 用 MariaDB 方法
  • 显示 MySQL → 用 MySQL 方法

二、重置 MySQL 密码(通用方法)

1. 停止 MySQL 服务

systemctl stop mysqld

2. 跳过权限表启动 MySQL

mysqld_safe --skip-grant-tables &

或(CentOS 7+):

mysqld --skip-grant-tables --user=mysql &

3. 无密码登录

mysql -u root

4. 修改密码

MySQL 5.7 / 8.0

FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword123!';

如果 ALTER USER 报错:

UPDATE mysql.user
SET authentication_string = PASSWORD('NewPassword123!')
WHERE User='root';
FLUSH PRIVILEGES;

5. 退出并重启 MySQL

exit
systemctl restart mysqld

三、重置 MariaDB 密码(CentOS 默认)

1. 停止服务

systemctl stop mariadb

2. 跳过权限启动

mysqld_safe --skip-grant-tables &

3. 登录

mysql -u root

4. 修改密码

USE mysql;
UPDATE user SET password=PASSWORD('NewPassword123!') WHERE User='root';
FLUSH PRIVILEGES;

MariaDB 10.4+ 用:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword123!';

5. 重启

systemctl restart mariadb

四、CentOS 7 使用 mysql_secure_installation(可选)

如果还能登录但想重设:

mysql_secure_installation

五、常见问题

  • 忘记 root 主机:'root'@'localhost' 和 'root'@'%' 是不同账号
  • SELinux 干扰:可临时关闭
    setenforce 0
    

如果你能告诉我:

  • CentOS 版本
  • MySQL / MariaDB 版本
  • 是否能启动服务

我可以给你更精确的一步一步命令。

0 踩