mysql忘了密码怎么办linux
时间: 2025-01-02 20:43:12 浏览: 10
### 如何在Linux上重置MySQL Root用户密码
#### 停止MySQL服务
为了安全地重置MySQL的`root`用户密码,需要先停止正在运行的MySQL服务。可以使用如下命令来完成这一操作:
```bash
sudo systemctl stop mysql
```
对于某些系统版本可能需要使用mysqld作为服务名称:
```bash
sudo service mysqld stop
```
#### 修改配置文件以允许无密码登录
接下来,在/etc/my.cnf或/etc/mysql/my.cnf中添加一行`skip-grant-tables`以便能够绕过权限表直接访问数据库[^5]。
#### 重启并进入MySQL环境
保存更改后的配置文件后,通过下面的指令重启MySQL服务使设置生效,并尝试不带任何参数连接至MySQL客户端工具:
```bash
sudo systemctl start mysql
mysql -u root
```
如果遇到提示符要求输入密码,则只需按Enter键继续即可[^3]。
#### 更新Root用户的密码
一旦成功进入了MySQL控制台,执行刷新授权信息的操作确保最新的变更被应用:
```sql
FLUSH PRIVILEGES;
```
随后利用SQL语句改变指定主机上的root账号的新密码。这里给出两种方法之一,适用于较新的MySQL版本(5.7及以上):
```sql
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
```
另一种方式则是针对更早些时候发布的MySQL实例适用的方法:
```sql
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');
```
请注意替换上述代码中的`new_password`为你想要设定的实际密码字符串[^4]。
#### 清理现场与测试新凭证
最后一步是要移除之前所做的临时改动——即删除my.cnf里的那行特殊指示;再重启一次MySQL让其恢复正常工作状态。此时应该能用刚刚创建好的全新认证凭据正常登陆了。
```bash
sudo vi /etc/my.cnf # 或者是其他路径下的相应文件名
# 移除 skip-grant-tables 行
sudo systemctl restart mysql
```
验证能否凭借刚设臵过的用户名/密码组合顺利接入数据库管理系统。
阅读全文