mysql8重置root用户密码的完整步骤

前言

最近很多新入职的同事问这个问题,特别是通过 homebrew 自动安装的 mysql ,其版本默认已经是 8.0 了,由于增加了一些安全策略等限制,所以修改用户密码会稍微麻烦些,索性就把这个总结贴一下吧。

下面话不多说了,来一起看看详细的介绍吧

步骤如下:

1、首先查看 root 用户相关信息,在 mysql 数据库的 user 表中:

select host, user, authentication_string, plugin from user;

host:允许用户登录的ip‘位置'%表示可以远程;

user:当前数据库的用户名;

authentication_string:用户密码;在mysql 5.7.9以后废弃了password字段和password()函数;

plugin:密码加密方式;

如果发现 root 用户的 authentication_string 字段下有内容,先将其设置为空:

use mysql;
update user set authentication_string='' where user='root';

2、重启 mysql 服务,mac 里直接命令把服务关闭:

mysql.server stop

或者把 mysql 进程 kill 掉。然后在启动 mysql 服务:

mysql.server start

3、用 root 用户登录,因为已经把 authentication_string 设置为空,所以可以免密码登录:

mysql -u root -p
passwrod:

不需要输入密码,直接回车即可

4、进入 mysql 库,使用 ALTER 修改 root 用户密码:

ALTER user 'root' IDENTIFIED BY '123456' ;

语句中的 root 需要跟你实际 user 表里 root 用户存的是 root 还是 root@localhost 而定,由于我这里把密码改成了 123456 这样比较简单的格式,可能 mysql 8 默认密码策略不允许,非要改的话可以先修改一下密码策略:

set global validate_password.length = 6 ;

set global validate_password.policy = 'LOW';

FLUSH PRIVILEGES;

这里把密码长度由默认的8位改成了6位,并且密码策略级别由 MEDIUM 改成了 LOW。如果要查看密码校验相关设置的话可以直接查询系统变量:

SHOW VARIABLES LIKE 'validate_password.%';

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

(0)

相关推荐

  • Mac MySQL重置Root密码的教程

    申明:本重置密码可直接对Homebrew安装的MySQL进行密码重置,对于其他方式安装的MySQL需要切换对应的安装目录即可. 安装MySQL后时间太长了会忘记密码,在这里总结一下忘记密码时如何重置本地MySQL Root密码. 所有操作都在Mac终端(Terminal)中完成. 停止服务和进程: brew services stop mysql 进入文件夹: cd /usr/local/opt/mysql/bin 执行越权命令(mysql): mysqld_safe --user=mysql

  • Mysql 5.7 忘记root密码或重置密码的详细方法

    在Centos中安装完MySQL数据库以后,不知道密码,这可怎么办,下面给大家说一下怎么重置密码 1.修改配置文件my.cnf 按i编辑 [root@iZ2ze14tbj23jllo85kuh1Z ~]# vim /etc/my.cnf 在[mysqld]中添加 skip-grant-tables 例如: [mysqld] **skip-grant-tables** datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock 键盘 Esc 保存

  • CentOS下重置MySQL的root密码的教程

    本人在CentOS6.4上安装万mysql后,无法通过root进入,因为安装的时候,并没有设置root密码,似乎有个初始随机密码,但是不记得了,太麻烦,直接重置root密码. 首先,你必须要有操作系统的root权限了.要是连系统的root权限都没有的话,先考虑root系统再走下面的步骤. PS:赋予用于root权限 方法一: 修改 /etc/sudoers 文件,找到%wheel一行,把前面的注释(#)去掉 ## Allows people in group wheel to run all c

  • linux系统中重置mysql的root密码

    大家知道,我们经常在linux或者windows需要用到mysql数据库,但是我们经常会犯一种特别低级的小错误,小编也时常会犯的错误,突然就忘记了mysql的root的密码,之后就会带来一系列的麻烦,下面小编告诉大家怎么在linux操作系统重置root的密码. 方法/步骤 第一步,检查操作系统是否安装有mysql数据库,在debian操作系统检查命令:dpkg --list |grep mysql 如下图: 先检查root用户密码是否已经忘记,输入命令:mysql -uroot -p 如下图:

  • windows下重置mysql的root密码方法介绍

    今天发现 WordPress 连接不上数据库,登录 window server 服务器查看,所有服务均运行正常. 使用 root 账号登录 mysql 数据库,结果提示密码不匹配.我突然意识到,服务器可能遭受到 SQL注入 攻击了-- 至于事故发生的原因和之后所做的补救措施,以后有机会我会聊一聊的.这里我主要讲一下 mysql 用户密码的重置步骤. 重置 root 密码 在忘记 root 密码的情况下,可以进入 mysql 的安全模式,重置 root 密码. 1. 停止 MySQL 服务 打开命

  • 解决重置Mysql root用户账号密码问题

    问题描述: 使用mysqladmin.exe执行命令时出现以下错误提示: mysqladmin: connect to server at 'localhost' failed error: 'Access denied for user 'root'@'localhost' (using password: YES)' 解决方法 如下,重置mysql root用户密码 # service mysqld stop # 进入mysql安装目录/bin目录下(如果没有进行相关环境变量的配置,下文操作

  • 在ubuntu中重置mysql服务器root密码的方法

    首先停止mysql服务: 复制代码 代码如下: root@webserver:/home/webmaster# service mysql stop 接着采用忽略密码认证模式重新创建一个mysql服务: 复制代码 代码如下: root@webserver:/home/webmaster# mysqld --user=mysql --skip-grant-tables --skip-networking & 成功启动后返回PID及其它启动信息 复制代码 代码如下: [1] 3591 root@we

  • Window下Mysql忘记root密码怎么重置

    本人机器环境: Windows 2008 R2 MySQL 5.6 以"Window下忘记Mysql的root密码"百度,找到一大堆解决方案.大多大同小异,比较经典的是百度文库上的一篇[1],图文并茂,条理也比较清晰.立刻按照这篇文章描述的操作. 具体操作如下: 以下步骤如果添加了MySQL的环境变量,则可以直接运行mysql有关命令,否则必须到mysql安装目录的bin目录下操作. 步骤如下: 1.停止mysql服务(以管理员身份,在cmd命令行下运行) net stop mysql

  • MySQL密码忘了怎么办?MySQL重置root密码方法

    MySQL有时候忘记了root密码是一件伤感的事.这里提供Windows 和 Linux 下的密码重置方法. Windows: 1.以系统管理员身份登陆系统. 2.打开cmd-----net start 查看mysql是否启动.启动的话就停止net stop mysql. 3.我的mysql安装在d:\usr\local\mysql4\bin下. 4.跳过权限检查启动mysql. d:\usr\local\mysql\bin\mysqld-nt --skip-grant-tables 5.重新打

  • 一键重置mysql的root密码的实现脚本

    重置mysql的root密码方法有很多,本文介绍的这个是使用批处理来完成的 @echo off title mysql ::从注册表找到Mysql的安装路径写入文件mysql.txt reg query HKLM\SYSTEM\ControlSet001\Services\MySQL | find /I "ImagePath">C:\mysql.txt if %errorlevel% neq 0 ( echo MySQL not found pause exit ) ::以&qu

  • 详解如何在Linux(CentOS)下重置MySQL根(Root)密码

    本例中以CentOS6.6下修改MySQL5.1.73举例说明. 1.首先输入"service mysqld status"查看当前mysql服务状态,下图显示正在mysqld服务正在运行中. 2.输入"killall -TERM mysqld"命令停止所有的mysqld进程. 3.输入"service mysqld stop"命令停止mysqld服务. 4.输入"mysqld_safe  --skip-grant-tables &am

随机推荐