mysql修改密码的三方法和忘记root密码的解决方法


### MySQL 修改密码的三种方法

1. **使用`ALTER USER`语句(MySQL 5.7.6及以上版本)**


   ALTER USER 'username'@'localhost' IDENTIFIED BY 'newpassword';
   FLUSH PRIVILEGES;  -- 某些情况下可能需要,但修改密码时通常不需要
   

这里`'username'`需要替换为你的用户名,`'newpassword'`替换为你想要设置的新密码。

2. **使用`SET PASSWORD`语句(MySQL 5.7.6以下版本)**


   SET PASSWORD FOR 'username'@'localhost' = PASSWORD('newpassword');
   

注意:在MySQL 5.7.6及以上版本中,`PASSWORD()`函数已被弃用,应使用`ALTER USER`。

3. **使用`mysqladmin`命令**

如果你能通过命令行访问MySQL服务器,可以使用`mysqladmin`工具来修改密码。


   mysqladmin -u username -p'oldpassword' password newpassword
   

这里`'username'`是你的用户名,`'oldpassword'`是旧密码,`'newpassword'`是你想要设置的新密码。执行此命令时,系统会提示你输入密码,但如果你已经在`-p`后直接跟了旧密码(不推荐这样做,因为它可能会记录在命令历史中),则不会显示这个提示。

### 忘记MySQL root密码的解决方法

如果你忘记了MySQL的root密码,可以通过以下步骤来重置密码:

1. **停止MySQL服务**

根据你的操作系统,使用相应的命令来停止MySQL服务。

2. **以无密码模式启动MySQL**

通常,你可以通过跳过授权表的方式来启动MySQL服务,这允许你无需密码即可登录。


   mysqld_safe --skip-grant-tables &
   

注意:这个命令在不同的操作系统和MySQL版本中可能有所不同。

3. **登录MySQL**


   mysql -u root
   

4. **选择mysql数据库**


   USE mysql;
   

5. **更新root密码**

根据你的MySQL版本,你可能需要使用`UPDATE`语句来直接设置密码,或者使用`ALTER USER`语句。

- 对于MySQL 5.7.6以下版本:


     UPDATE user SET authentication_string=PASSWORD('newpassword') WHERE User='root';
     FLUSH PRIVILEGES;
     

- 对于MySQL 5.7.6及以上版本:


     ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';
     FLUSH PRIVILEGES;
     

6. **退出MySQL并重启MySQL服务**

使用`exit`命令退出MySQL,然后重启MySQL服务。

7. **使用新密码登录**

使用新的root密码登录MySQL。

请注意,这些步骤中的某些命令可能需要根据你的MySQL版本和操作系统进行调整。在操作过程中,请确保你了解每一步的含义,并谨慎操作,以避免不必要的数据丢失或安全问题。