CentOS 基本指令(五)——安装部署MySQL数据库 & root用户密码重置

首先使用wget命令下载MySQL rpm 包,使用如下命令进行解压,安装MySQL。

wget http://repo.mysql.com/mysql80-community-release-el7-1.noarch.rpm
rpm -ivh mysql80-community-release-el7-1.noarch.rpm 
yum update
yum install mysql-server
  • 1
  • 2
  • 3
  • 4

查看MySQL是否安装成功:
在这里插入图片描述
初始化MySQL,启动并查看运行状态:
在这里插入图片描述
使用root用户登录,初次登录可能会失败,如下:
在这里插入图片描述
此时需要重置一下root用户密码,将skip-grant-tables加入到/etc/my.cnf文件中:
在这里插入图片描述
之后重启MySQL服务,此时无需密码即可登录:
在这里插入图片描述
登陆成功后修改root用户密码(@‘localhost’表示只允许本地登录):

ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword'
  • 1

使用该命令后发现此处设置的密码强度不符合MySQL的密码强度
在这里插入图片描述
使用如下命令查看密码强度参数:
在这里插入图片描述
使用如下命令将密码强度调低:
在这里插入图片描述
再次执行更改用户密码的命令,执行成功;
重新注释掉/etc/my.cnf文件中的skip-grant-tables
重启MySQL服务:
在这里插入图片描述
使用新密码登录成功:
在这里插入图片描述

<think>好的,我需要帮助用户CentOS 7上重置MySQL数据库密码。根据用户提供的引用资料,我需要整理出详细的步骤,并确保每个步骤都正确无误。首先,用户可能需要停止MySQL服务,以跳过权限检查的方式启动MySQL。然后,使用无密码登录修改密码,最后恢复服务并测试新密码。 首先,验证用户是否使用的是CentOS 7,因为不同版本的系统命令可能不同。确认用户已经安装MySQL,并且是root用户或者有sudo权限。接下来,根据引用[2],停止MySQL服务:`sudo systemctl stop mysqld`或者`service mysqld stop`,这取决于系统使用的初始化系统是systemd还是SysVinit。不过,CentOS 7通常使用systemctl,所以可能需要调整命令。 然后,启动MySQL并跳过权限表,引用[2]提到使用`mysqld_safe --skip-grant-tables &`,但需要注意是否有mysqld_safe可用,或者是否应该使用其他方法。在较新的MySQL版本中,可能需要使用`mysqld --skip-grant-tables --skip-networking &`来增强安全性,避免远程访问。同时,用户需要另开终端登录MySQL,这时候不需要密码,可以直接用`mysql -u root`进入。 接下来,根据引用[3]和[4],更新密码的方式可能不同。旧版本使用`update mysql.user set authentication_string=password('新密码') where user='root';`而新版本(如MySQL 5.7及以上)可能需要使用`ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';`。需要注意如果用户安装的是MariaDB,命令可能有所不同。此外,执行这些命令后需要刷新权限:`flush privileges;`然后退出。 之后,停止MySQL进程,并正常重启服务。可能需要使用`sudo systemctl restart mysqld`,然后测试新密码是否生效。如果遇到密码策略问题,可能需要临时禁用验证策略,如引用[4]中的步骤,修改密码后再重新启用。另外,如果用户需要远程访问,可能需要开放端口和关闭防火墙,如引用[2]提到的,但这不是重置密码的直接步骤,但用户可能需要这方面的帮助,可以考虑在相关问题中提到。 需要检查每个步骤的正确性,例如是否正确停止服务,启动时是否正确跳过了权限表,以及密码修改命令是否适用于用户MySQL版本。另外,确保用户在执行这些命令时有足够的权限,可能需要使用sudo。同时,提醒用户在操作前备份数据,以防万一。</think>### 逐步重置 CentOS 7 中 MySQL 密码的步骤 1. **停止 MySQL 服务** 通过以下命令关闭 MySQL 服务(根据系统初始化方式选择): ```bash sudo systemctl stop mysqld # 适用于 systemd 系统 # 或 sudo service mysqld stop # 适用于 SysVinit 系统 ``` 2. **以无权限验证模式启动 MySQL** 跳过权限验证并启动 MySQL 后台进程: ```bash sudo mysqld_safe --skip-grant-tables --skip-networking & ``` 注意:若提示找不到 `mysqld_safe`,尝试改用 `mysqld` 命令。 3. **无密码登录 MySQL** 打开新终端窗口,直接登录 MySQL: ```bash mysql -u root ``` 4. **修改 root 用户密码** **根据 MySQL 版本选择对应方法:** - **MySQL 5.7 及以上或 MariaDB 10.4+** ```sql ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码'; FLUSH PRIVILEGES; ``` - **旧版本 MySQL(如 5.6)** ```sql UPDATE mysql.user SET authentication_string=PASSWORD('你的新密码') WHERE User='root'; FLUSH PRIVILEGES; ``` 5. **退出并重启 MySQL 服务** ```sql exit; ``` 终止 MySQL 进程后正常重启服务: ```bash sudo killall mysqld # 结束无权限验证进程 sudo systemctl start mysqld ``` 6. **验证新密码** ```bash mysql -u root -p ``` 输入新密码,确认登录成功。 --- ### 常见问题解决 - **密码策略限制** 若密码强度不足,临时禁用验证策略(仅限测试环境): ```sql SET GLOBAL validate_password_policy=0; ALTER USER 'root'@'localhost' IDENTIFIED BY '简单密码'; ``` - **远程访问配置** 如需远程连接,需开放端口并配置用户权限: ```bash sudo firewall-cmd --permanent --add-port=3306/tcp # 开放 3306 端口 sudo firewall-cmd --reload ``` 在 MySQL 中执行: ```sql CREATE USER 'root'@'%' IDENTIFIED BY '密码'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'; FLUSH PRIVILEGES; ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值