• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

MySQL如何修改用户密码以及如何重置root密码

mysql 搞代码 4年前 (2022-01-09) 18次浏览 已收录 0个评论

为数据库用户修改密码是DBA比较常见的工作之一。对于MySQL用户账户的密码修改,有几种不同的方式,推荐的方式使用加密函数来修改密码。本文主要描述了通过几种不同的方式来修改用户密码以及mysql root账户密码丢失(重置root密码)的处理方法。

1、密码修改的几种方法

<span>a、可以在创建用户的时候指定密码,以及直接使用grant创建用户的时候指定密码。<br />   对于已经存在的用户直接使用grant方式也可以修改密码<br />如下:<br /><br />--演示版本<br />root@localhost[(none)]> show variables like 'version%';  <br />+-------------------------+------------------------------+   <br />| Variable_name           | Value                        |  <br />+-------------------------+------------------------------+   <br />| version                 | 5.5.37                       |  <br />| ver<div>本文来源gaodai.ma#com搞#代!码网_</div>sion_comment         | MySQL Community Server (GPL) |  <br />| version_compile_machine | x86_64                       |  <br />| version_compile_os      | Linux                        |  <br />+-------------------------+------------------------------+   <br /><br />--下面我们使用grant方式创建一个新帐户fred,并设定密码<br />root@localhost[(none)]> grant usage on *.* to 'fred'@'localhost' identified by 'fred';<br />Query OK, 0 rows affected (0.00 sec)<br /><br />--查看刚刚创建的账户<br />root@localhost[(none)]> select host,user,password from mysql.user where user='fred';<br />+-----------+------+-------------------------------------------+<br />| host      | user | password                                  |<br />+-----------+------+-------------------------------------------+<br />| localhost | fred | *6C69D17939B2C1D04E17A96F9B29B284832979B7 |<br />+-----------+------+-------------------------------------------+<br /><br />--下面可以成功登陆mysql<br />SZDB:~ # mysql -ufred -pfred<br /><br />fred@localhost[(none)]> <br /><br />b、使用set password方式来修改账户密码<br />--下面我们使用set password方式来设定密码<br />root@localhost[(none)]> set password for 'fred'@'localhost'=password('passwd');<br />Query OK, 0 rows affected (0.00 sec)<br /><br />root@localhost[(none)]> flush privileges;<br />Query OK, 0 rows affected (0.00 sec)<br /><br />--再次登陆时,之前的密码已经失效,无法登陆<br />SZDB:~ # mysql -ufred -pfred<br />ERROR 1045 (28000): Access denied for user 'fred'@'localhost' (using password: YES)<br /><br />--下面使用新密码登陆成功<br />SZDB:~ # mysql -ufred -ppasswd<br /><br />fred@localhost[(none)]> <br /><br />--检索数据库是否存在jack用户,如下密码为null<br />root@localhost[(none)]> select host,user,password from mysql.user where user='jack';<br />+-----------+------+----------+<br />| host      | user | password |<br />+-----------+------+----------+<br />| localhost | jack |          |<br />+-----------+------+----------+<br /><br />c、加密方式更新系统表user的password列<br />--我们尝试直接更新密码列(不使用加密函数方式)<br />root@localhost[(none)]> update mysql.user set password='jack' where user='jack';<br />Query OK, 1 row affected (0.00 sec)<br />Rows matched: 1  Changed: 1  Warnings: 0<br /><br />--由于直接使用明文,因此系统表user列password显示为明文<br />root@localhost[(none)]> select host,user,password from mysql.user where user='jack';<br />+-----------+------+----------+<br />| host      | user | password |<br />+-----------+------+----------+<br />| localhost | jack | jack     |<br />+-----------+------+----------+<br /><br />--Author : Leshami<br />--Blog   :http://blog.gaodaima.com/leshami<br /><br />root@localhost[(none)]> flush privileges;<br />Query OK, 0 rows affected (0.02 sec)<br /><br />--此时无法登陆<br />SZDB:~ # mysql -ujack -pjack -h localhost      <br />ERROR 1045 (28000): Access denied for user 'jack'@'localhost' (using password: YES)<br /><br />--下面我们通过set方式来修改jack的密码,提示找不到jack用户<br />root@localhost[(none)]> set password for 'jack'@'localhost'=password('jack');<br />ERROR 1133 (42000): Can't find any matching row in the user table<br /><br />--我们切换到mysql数据库下尝试,<br />root@localhost[(none)]> use mysql   <br /><br />root@localhost[mysql]> set password for 'jack'@'localhost'=password('passwd');  <br />--在mysql数据库下依旧无法更新用户jack的密码<br />ERROR 1133 (42000): Can't find any matching row in the user table<br /><br />--下面我们尝试用password函数方式来更新password列<br />root@localhost[mysql]> update user set password=password('passwd') where user='jack'; --此方式更新成功<br />Query OK, 1 row affected (0.04 sec)<br />Rows matched: 1  Changed: 1  Warnings: 0<br /><br />root@localhost[mysql]> select host,user,password from user where user='jack';    --可以看到密码已经变成了密文<br />+-----------+------+-------------------------------------------+<br />| host      | user | password                                  |<br />+-----------+------+-------------------------------------------+<br />| localhost | jack | *59C70DA2F3E3A5BDF46B68F5C8B8F25762BCCEF0 |<br />+-----------+------+-------------------------------------------+<br /><br />root@localhost[mysql]> flush privileges;<br />Query OK, 0 rows affected (0.00 sec)<br /><br />--此时登陆成功<br />robin@SZDB:~> mysql -ujack -ppasswd          <br /><br />jack@localhost[(none)]> <br /></span>

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:MySQL如何修改用户密码以及如何重置root密码
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址