温馨提示×

centos mysql怎样设置密码

小樊
45
2026-09-21 00:48:32
栏目: 云计算

在 CentOS 上设置或修改 MySQL 密码,常见情况分为 初次安装设置密码已安装后修改密码。下面按常见场景说明(以 MySQL 5.7 / 8.0 为例,CentOS 7/8 均适用)。


一、初次安装后设置 root 密码

1. 启动 MySQL

systemctl start mysqld
systemctl enable mysqld

2. 查看初始临时密码(MySQL 5.7+)

grep 'temporary password' /var/log/mysqld.log

输出类似:

A temporary password is generated for root@localhost: xxxxxxxx

3. 使用临时密码登录

mysql -u root -p

4. 修改 root 密码(MySQL 8.0)

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

MySQL 5.7

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('NewPassword123!');

⚠️ 密码需符合策略(大小写+数字+特殊字符)


二、忘记 root 密码(重置密码)

1. 停止 MySQL

systemctl stop mysqld

2. 跳过权限表启动

mysqld_safe --skip-grant-tables &

或(推荐方式):

systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
systemctl start mysqld

3. 无密码登录

mysql -u root

4. 修改密码

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;

5. 重启 MySQL

systemctl restart mysqld

三、创建新用户并设置密码

CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'Test@123456';
GRANT ALL PRIVILEGES ON *.* TO 'testuser'@'localhost';
FLUSH PRIVILEGES;

四、常见问题

1. 密码太简单报错

SHOW VARIABLES LIKE 'validate_password%';

可临时关闭:

SET GLOBAL validate_password.policy=LOW;

2. 远程连接密码

CREATE USER 'root'@'%' IDENTIFIED BY 'Password123!';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';

如果你能说明:

  • CentOS 版本
  • MySQL 版本
  • 是新装还是忘记密码

我可以给你更精确的步骤。

0