然而,数据库管理员(DBA)或系统管理员有时会遇到一个棘手的问题——忘记了MySQL的root用户密码
这不仅影响数据库的正常访问,还可能导致业务中断
幸运的是,有几种方法可以帮助你重置或恢复MySQL的root密码,确保数据库系统迅速恢复正常运行
一、准备工作 在进行任何密码重置操作之前,请确保你具备以下条件: 1.root权限:你需要有对CentOS 7服务器的root访问权限,无论是通过物理访问、SSH还是其他远程管理工具
2.MySQL安装:确认MySQL服务已经安装并正在运行
如果没有安装,你需要先进行安装
3.备份数据:虽然重置密码操作通常不会影响数据库数据,但始终建议在执行任何可能影响数据库完整性的操作之前进行备份
二、方法一:通过停止MySQL服务重置密码 这是最经典也是最常见的方法之一,适用于大多数MySQL版本
步骤如下: 1.停止MySQL服务: bash sudo systemctl stop mysqld 2.以安全模式启动MySQL: 跳过授权表(authorization tables)启动MySQL服务,允许无密码登录
bash sudo mysqld_safe --skip-grant-tables & 注意:`&`符号用于在后台运行该命令,使你能够继续在同一个终端会话中执行其他命令
3.登录MySQL: 由于跳过了授权表,你可以直接以root用户身份登录,无需密码
bash mysql -u root 4.重置密码: 一旦登录,使用以下SQL命令重置root密码
这里以MySQL5.7及更高版本为例,其中`password_expired`设置为`NEVER`确保密码不会立即过期
sql FLUSH PRIVILEGES; ALTER USER root@localhost IDENTIFIED BY NewPassword123!; ALTER USER root@localhost PASSWORD EXPIRE NEVER; 对于MySQL5.6及以下版本,使用: sql SET PASSWORD FOR root@localhost = PASSWORD(NewPassword123!); FLUSH PRIVILEGES; 5.退出MySQL: sql EXIT; 6.停止安全模式下的MySQL服务: 找到并杀死之前启动的`mysqld_safe`进程
你可以使用`ps aux | grep mysqld`找到进程ID,然后使用`kill -9