在 CentOS 上设置 MySQL 密码,通常分为首次安装后设置 root 密码和修改已有密码两种情况。下面按常见场景说明(以 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
MySQL 8.0
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword@123';
MySQL 5.7
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('NewPassword@123');
密码需满足密码策略(大小写+数字+特殊字符)
systemctl stop mysqld
mysqld_safe --skip-grant-tables &
mysql -u root
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword@123';
systemctl restart mysqld
CREATE USER 'testuser'@'%' IDENTIFIED BY 'Test@123456';
GRANT ALL PRIVILEGES ON *.* TO 'testuser'@'%';
FLUSH PRIVILEGES;
SHOW VARIABLES LIKE 'validate_password%';
修改配置文件:
vi /etc/my.cnf
添加:
validate_password=OFF
重启:
systemctl restart mysqld
如果你用的是 MariaDB 或 CentOS 版本不同,可以告诉我,我可以给你对应命令。