在 CentOS 上设置或修改 MySQL 密码,常见情况分为 初次安装设置密码 和 已安装后修改密码。下面按常见场景说明(以 MySQL 5.7 / 8.0 为例,CentOS 7/8 均适用)。
systemctl start mysqld
systemctl enable mysqld
grep 'temporary password' /var/log/mysqld.log
输出类似:
A temporary password is generated for root@localhost: xxxxxxxx
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword123!';
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('NewPassword123!');
⚠️ 密码需符合策略(大小写+数字+特殊字符)
systemctl stop mysqld
mysqld_safe --skip-grant-tables &
或(推荐方式):
systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
systemctl start mysqld
mysql -u root
MySQL 8.0
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword123!';
MySQL 5.7
UPDATE mysql.user SET authentication_string=PASSWORD('NewPassword123!') WHERE User='root';
FLUSH PRIVILEGES;
systemctl restart mysqld
CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'Test@123456';
GRANT ALL PRIVILEGES ON *.* TO 'testuser'@'localhost';
FLUSH PRIVILEGES;
SHOW VARIABLES LIKE 'validate_password%';
可临时关闭:
SET GLOBAL validate_password.policy=LOW;
CREATE USER 'root'@'%' IDENTIFIED BY 'Password123!';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
如果你能说明:
我可以给你更精确的步骤。