# 6、MYSQL管理员密码修改



#### mysql 忘记了管理员密码解决方法，修改数据库密码的几种方法

### **方法一： 用 `SET PASSWORD`**

```
首先登录 MySQL。

格式：mysql> set password for 用户名 @localhost = password('新密码');
例子：mysql> set password for root@localhost = password('123');
```

### **方法二： 用 `mysqladmin`**

```
格式： mysqladmin -u 用户名 -p 旧密码 password 新密码
例子： mysqladmin -uroot -p123456 password 123

在没有密码，需要设置密码情况下：
mysqladmin -uroot password 123
```

### **方法三： 用 `UPDATE` 直接编辑 user 表**

```
mysql> use mysql;
mysql> update user set password=password('123') where user='root';
mysql> flush privileges;

# 5.7
update mysql.user set authentication_string=password('*******') where user='*******';  #修改密码成功
```

### **方法四： 跳过**

```
# windows下修改
1. 关闭正在运行的 MySQL 服务。
2. 打开 DOS 窗口，转到 mysql\bin 目录。
3. 输入 mysqld --skip-grant-tables 回车。 --skip-grant-tables 的意思是启动 MySQL 服务的时候跳过权限表认证。
4. 再开一个 DOS 窗口（因为刚才那个 DOS 窗口已经不能动了），转到 mysql\bin 目录。
5. 输入 mysql 回车，如果成功，将出现 MySQL 提示符
6. 连接权限数据库： use mysql;
7. 改密码：update user set password=password("123") where user="root";（别忘了最后加分号）
8. 刷新权限（必须步骤）：flush privileges;
9. 退出 quit
10. 注销系统，再进入，使用用户名 root 和刚才设置的新密码 123 登录。

# Linux下修改
1. 首先编辑mysql安装目录下的 my.cnf 文件：vi my.cnf 【注：windows下修改的是 my.ini 】
2. 找到 [mysqld] 行，在其下方添加一行： skip-grant-tables
3. 按 esc 输入 :wq 保存退出
4. 重启服务 service mysql restart 【windows下需要打开“服务”并找到mysql重启】
5. 修改 mysql 密码 set password = password('root'); 或使用 方法 3
6. 修改完密码后，需要将 my.cnf(my.ini) 文件修改回原样。
7. 重启服务。完成
```
