修改mysql用户密码思路与步骤解析(windows与mac)

    技术2022-07-11  87

    mysql中忘记了root用户的密码?

    注意windows思路步骤 mac思路步骤

    注意

    mysql5.7.9版本之后取消了password字段与password函数,password字段变更为authentication_string字段

    windows

    思路

    (这里使用的是5.7.9版本之前)首先我们要知道mysql中的用户数据是存在mysql数据库中的user表中, user表中的密码是进行加密过的,所以我们需要用password()函数用来加密我们的密码.(需要了解对应的加密算法,另行百度,我这里就不展开了), root用户的权限是最高的. 然后我们需要分情况讨论 1.如果我们是要使用root用户修改其他用户的密码,那直接登录root用户,然后去mysql数据库下的user表更新数据 update user set password = password(‘你的新密码’) where user = ‘需修改密码的用户’; 2.如果我们是忘记了root的密码,那我们就要使用无验证方式启动mysql服务,去修改root用户的密码 最后修改完密码之后要重新启动mysql服务,更新的密码才会生效

    步骤

    1 停止mysql服务(需要管理员运行该cmd): cmd – > net stop mysql 2. 使用无验证方式启动mysql服务: mysqld --skip-grant-tables 3. 打开新的cmd窗口,直接输入mysql命令,敲回车。就可以登录成功 4. use mysql; 5. update user set password = password(‘你的新密码’) where user = ‘root’; 6. 关闭两个窗口 7. 打开任务管理器,手动结束mysqld.exe 的进程 8. 启动mysql服务 9. 使用新密码登录

    mac

    思路

    在这里本人使用的是mysql8.0.21版本,思路与windows类似

    步骤

    1.需要先停止mysql服务(因为我们要以跳过验证的方式启动mysql服务) sudo /usr/local/mysql/support-files/mysql.server stop:以root权限使用mysql.server命令停止服务 2.sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables:root权限使用mysqld_safe命令以跳过验证的方式启动mysql服务

    3.新起一个终端(因为原本的这个终端被使用于启动mysql服务) mysql -u root:使用mysql命令直接登录mysql

    4.查看mysql数据库下user表中的数据

    SELECT user, authentication_string FROM mysql.user;

    我们的密码就是存在authentication_string字段中以某种方式进行加密,所以我们修改密码的目的就是修改这个字段

    注:如果你之前使用了其他语句修改密码,然后输入密码的时候一直报错以下这个错

    mysql -u root -p Enter password: ****** ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)

    如果 你已经这样更改密码,并且导致了无法进入mysql 你要使用该命令清空root的密码

    UPDATE user SET authentication_string="" WHERE user='root';

    5.然后重启服务,以正常模式启动服务 mysql -u root -p:此时密码为空 进入mysql服务器 然后使用

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY "这里填你的密码";

    这样即完成了整个密码修改过程

    Processed: 0.014, SQL: 9