HCRM博客

如何在CentOS系统中更改MySQL的密码?

CentOS MySQL 密码管理

查看和修改 MySQL 密码的步骤与方法

在 CentOS 操作系统中,MySQL 是一个常用的关系型数据库管理系统,为了确保数据库的安全性,定期更改和管理 MySQL 的密码是非常重要的,本文将详细介绍如何在 CentOS 系统中查看和修改 MySQL 密码,并提供相关配置和常见问题的解决方案。

如何在CentOS系统中更改MySQL的密码?-图1
(图片来源网络,侵权删除)

一、查看 MySQL 默认密码

当首次安装 MySQL 时,系统会生成一个临时密码并记录在日志文件中,要查看这个临时密码,可以使用以下命令:

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

输出可能是:

[Note] A temporary password is generated for root@localhost: r37P6n8zXs

其中r37P6n8zXs 就是临时密码。

二、修改 MySQL 密码

1、使用 ALTER USER 命令

如何在CentOS系统中更改MySQL的密码?-图2
(图片来源网络,侵权删除)

登录 MySQL 后,可以使用ALTER USER 命令来修改密码,使用临时密码登录:

   mysql u root p

然后输入临时密码进入 MySQL 控制台,使用以下命令修改密码:

   ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword!234';

新密码必须包含大小写字母、数字和特殊字符,并且长度至少为8个字符。

2、使用 SET PASSWORD 命令

另一种修改密码的方法是使用SET PASSWORD 命令:

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

3、跳过权限表启动 MySQL(安全模式)

如何在CentOS系统中更改MySQL的密码?-图3
(图片来源网络,侵权删除)

如果忘记了 root 密码,可以通过跳过权限表的方式重置密码:

1. 停止 MySQL 服务:

      systemctl stop mysqld

2. 使用skipgranttables 选项启动 MySQL:

      mysqld_safe skipgranttables &

3. 登录 MySQL(无需密码):

      mysql u root

4. 修改mysql 数据库中的user 表:

      USE mysql;
      UPDATE user SET authentication_string=PASSWORD('NewPassword!234') WHERE User='root';
      FLUSH PRIVILEGES;

5. 退出 MySQL 并重新启动服务:

      exit;
      systemctl start mysqld

三、开启远程访问

为了允许远程连接到 MySQL,需要执行以下步骤:

1、授权远程访问

   GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'NewPassword!234' WITH GRANT OPTION;

2、刷新权限

   FLUSH PRIVILEGES;

3、开放防火墙端口

   firewallcmd zone=public addport=3306/tcp permanent
   firewallcmd reload

四、修改字符集

默认情况下,MySQL 的字符集可能不是 utf8mb4,这会影响多语言支持,可以通过以下步骤修改字符集:

1、编辑配置文件

打开/etc/my.cnf 文件:

   vim /etc/my.cnf

2、添加或修改以下内容

   [client]
   defaultcharacterset=utf8mb4
   charactersetserver=utf8mb4
   collationserver=utf8mb4_general_ci

3、重启 MySQL 服务

   systemctl restart mysqld

五、常见问题及解决方案

Q1:如何更改 MySQL 密码策略?

A1:可以通过设置全局变量来更改密码策略,关闭密码复杂性策略:

SET GLOBAL validate_password.policy=0;
SET GLOBAL validate_password.length=4;

>Q2:忘记 MySQL root 密码怎么办?

A2:可以通过跳过权限表的方式重置密码,具体步骤如下:

1、停止 MySQL 服务:systemctl stop mysqld

2、使用skipgranttables 选项启动 MySQL:mysqld_safe skipgranttables &

3、登录 MySQL:mysql u root

4、修改mysql 数据库中的user 表:UPDATE user SET authentication_string=PASSWORD('NewPassword!234') WHERE User='root'; FLUSH PRIVILEGES;

5、退出并重启 MySQL:exit; systemctl start mysqld

分享:
扫描分享到社交APP
上一篇
下一篇