在 CentOS 上设置 MySQL 密码,通常分为首次安装后设置 root 密码和修改已有密码两种情况。下面以 CentOS 7/8 + MySQL 5.7/8.0 为例说明。
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 5.7 / 8.0:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword123!';
密码需满足复杂度(大小写+数字+特殊字符)
刷新权限:
FLUSH PRIVILEGES;
systemctl stop mysqld
mysqld_safe --skip-grant-tables &
mysql -u root
MySQL 5.7:
UPDATE mysql.user SET authentication_string=PASSWORD('NewPassword123!')
WHERE User='root';
FLUSH PRIVILEGES;
MySQL 8.0:
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword123!';
systemctl restart mysqld
CREATE USER 'testuser'@'%' IDENTIFIED BY 'Test@123456';
GRANT ALL PRIVILEGES ON *.* TO 'testuser'@'%';
FLUSH PRIVILEGES;
密码太简单报错
可临时降低策略:
SET GLOBAL validate_password_policy=LOW;
CentOS 使用 MariaDB
命令类似,但用 mysql 即可,默认无密码。
如果你能告诉我:
我可以给你更精确的步骤。