当前位置: 首页 > 科技观察

MySQL8中如何重置Root密码

时间:2023-03-14 17:31:31 科技观察

MySQL中的用户密码存储在user表中,密码重置实际上是更改该表中记录的值。密码忘记修改,思路是绕过MySQL的认证进入系统,使用SQL命令更新记录的密码值。在MySQL5中,您可以使用--skip-grant-tables选项启动MySQL服务,此选项将告诉服务在启动时跳过加载授权表,因此root用户可以使用空密码登录。mysqld--skip-grant-tables登录后,可以在SQL命令UPDATEuserSETauthentication_string=''WHEREuser='root'下运行更改密码;这会将密码设置为空。但是,如果不对MySQL8进行一些调整,--skip-grant-tables似乎无法工作。那么我们能做什么呢?有两种可能的选择。创建一个--init文件。并使用选项--init-file运行MySQL服务。在init文件中,输入SQL命令以更新密码值。深入研究如何在MySQL8中使用--skip-grant-tables。让我们来看看这些选项是如何工作的。选项1:--init-file选项此选项将指定一个文件,其中包含要在服务启动之前执行的SQL命令。因此,我们只需要使用命令更新此文件中的密码并使用此选项启动MySQL服务即可。密码将被重置/更新。第一步:停止MySQL服务netstopmysql第二步:创建一个txt文件,在ALTERUSER'root'@'localhost'IDENTIFIEDBY''中输入以下命令;第3步:在命令行上启动服务并使用--init-file选项mysqld--init-file=/some/path/to/cmd.txt--consoledone。注意:当您遇到权限被拒绝的错误时,请以特权用户身份运行该命令。如果您看到以下错误:2018-12-27T05:51:23.739089Z0[System][MY-010116][Server]C:\ProgramFiles\MySQL\MySQLServer8.0\bin\mysqld.exe(mysqld8.0.13)startingasprocess19122018-12-27T05:51:23.759426Z1[ERROR][MY-011011][Server]未能找到有效的数据目录。2018-12-27T05:51:23.761196Z0[ERROR][MY-010020][Server]DataDictionary初始化failed-01.2-2017T:51:23.762550Z0[ERROR][MY-010119][Server]Aborting2018-12-27T05:51:23.766230Z0[System][MY-010910][Server]C:\ProgramFiles\MySQL\MySQLServer8.0\bin\mysqld.exe:Shutdowncomplete(mysqld8.0.13)MySQLCommunityServer-GPL。请运行以下命令初始化数据目录mysqld--initialize--console选项2:使用--skip-grant-tables选项与MySQL5相比,MySQL8还需要增加更多的选项。mysqld--console--skip-grant-tables--shared-memory启动服务后,空密码登录mysql-uroot,执行更新密码的SQL命令UPDATEmysql.userSETauthentication_string=''WHEREuser='root'andhost='localhost';通常推荐选项1。并希望这篇文章对您有所帮助。Linux公社RSS地址:https://www.linuxidc.com/rssFeed.aspx本文***更新链接地址:https://www.linuxidc.com/Linux/2018-12/156052.htm

最新推荐
猜你喜欢