在 CentOS 上重置 MySQL / MariaDB 密码,常见做法如下(以 MySQL 5.7 / 8.0 和 MariaDB 为例)。
mysql --version
MariaDB → 用 MariaDB 方法MySQL → 用 MySQL 方法systemctl stop mysqld
mysqld_safe --skip-grant-tables &
或(CentOS 7+):
mysqld --skip-grant-tables --user=mysql &
mysql -u root
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword123!';
如果 ALTER USER 报错:
UPDATE mysql.user
SET authentication_string = PASSWORD('NewPassword123!')
WHERE User='root';
FLUSH PRIVILEGES;
exit
systemctl restart mysqld
systemctl stop mariadb
mysqld_safe --skip-grant-tables &
mysql -u root
USE mysql;
UPDATE user SET password=PASSWORD('NewPassword123!') WHERE User='root';
FLUSH PRIVILEGES;
MariaDB 10.4+ 用:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword123!';
systemctl restart mariadb
如果还能登录但想重设:
mysql_secure_installation
'root'@'localhost' 和 'root'@'%' 是不同账号setenforce 0
如果你能告诉我:
我可以给你更精确的一步一步命令。