MySQL修改密码的几种方式

吾爱主题 阅读:213 2024-04-02 07:58:22 评论:0

前言:

在日常使用数据库的过程中,难免会遇到需要修改账号密码的情景,比如密码太简单需要修改、密码过期需要修改、忘记密码需要修改等。本篇文章将会介绍需要修改密码的场景及修改密码的几种方式。

1.忘记 root 密码

忘记 root 密码的场景还是比较常见的,特别是自己搭的测试环境经过好久没用过时,很容易记不得当时设置的密码。这个时候一般常用的方法是跳过权限验证,然后更改 root 密码,之后再启用权限验证。以 MySQL 5.7 版本为例简单讲下主要过程:

首先修改配置文件,在[mysqld]部分加上一句:skip-grant-tables ,加上此参数的目的是跳过权限验证。然后重启数据库,数据库再次启动后,我们就可以不用密码直接登录数据库修改密码了。

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 # skip- grant -tables 模式下修改root密码  [root@host ~]# mysql  Welcome  to  the MySQL monitor.  Commands  end  with  or  \g.  Your MySQL  connection  id  is  16  Server version: 5.7.23-log MySQL Community Server (GPL)    Copyright (c) 2000, 2018, Oracle  and / or  its affiliates.  All  rights reserved.    Oracle  is  a registered trademark  of  Oracle Corporation  and / or  its  affiliates. Other names may be trademarks  of  their respective  owners.    Type  'help;'  or  '\h'  for  help. Type  '\c'  to  clear the  current  input statement.    mysql>  update  mysql. user  set  authentication_string =  password  ( 'xxxxxx' where  user  'root'  and  host =  'localhost' Query OK, 0  rows  affected, 1 warning (0.00 sec)  Rows  matched: 1  Changed: 0  Warnings: 1    mysql> flush  privileges Query OK, 0  rows  affected (0.01 sec) 

修改完 root 密码后,再次去除 skip-grant-tables 参数,然后重启下数据库即可。

2.几种修改密码的方法

除去忘记密码,可能还有其他情景需要修改密码,这时候就可以采取普通方式修改密码了。还是以 MySQL 5.7 版本为例,介绍几种常用的修改密码的方法。

使用 alter user 修改

比如如果想更改 testuser 账号的密码,我们可以使用 root 账号登录,然后执行 alter user 命令更改 testuser 账号的密码。

?
1 2 3 4 5 mysql>  alter  user  'testuser' @ '%'  identified  by  'Password1' Query OK, 0  rows  affected (0.01 sec)    mysql> flush  privileges Query OK, 0  rows  affected (0.00 sec) 

使用 SET PASSWORD 命令

使用 SET PASSWORD 修改密码命令格式为 SET PASSWORD FOR 'username'@'host' = PASSWORD('newpass'); 同样是使用 root 账号可修改其他账号的密码。

?
1 2 3 4 5 mysql>  SET  PASSWORD  FOR  'testuser' @ '%'  PASSWORD ( 'Password2' );  Query OK, 0  rows  affected, 1 warning (0.00 sec)    mysql> flush  privileges Query OK, 0  rows  affected (0.00 sec) 

使用 mysqladmin 修改密码

使用 mysqladmin 命令修改账号密码格式为 mysqladmin -u用户名 -p旧密码 password 新密码

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 [root@host ~]# mysqladmin -utestuser -pPassword2  password  Password3  mysqladmin: [Warning] Using a  password  on  the command line interface can be insecure.  Warning: Since  password  will be sent  to  server  in  plain text, use ssl  connection  to  ensure  password  safety.  [root@host ~]# mysql -utestuser -pPassword3  mysql: [Warning] Using a  password  on  the command line interface can be insecure.  Welcome  to  the MySQL monitor.  Commands  end  with  or  \g.  Your MySQL  connection  id  is  2388  Server version: 5.7.23-log MySQL Community Server (GPL)    Copyright (c) 2000, 2018, Oracle  and / or  its affiliates.  All  rights reserved.    Oracle  is  a registered trademark  of  Oracle Corporation  and / or  its  affiliates. Other names may be trademarks  of  their respective  owners.    Type  'help;'  or  '\h'  for  help. Type  '\c'  to  clear the  current  input statement.    mysql>  

直接 update user 表

其实 MySQL 所以的账号信息都存储在 mysql.user 表里面,我们也可以直接通过 update user 表来修改密码。

?
1 2 3 4 5 6 7 8 9 10 # 5.7及之后版本  mysql>  update  mysql. user  set  authentication_string =  password  ( 'Password4' where  user  'testuser'  and  host =  '%' Query OK, 1 row affected, 1 warning (0.06 sec)  Rows  matched: 1  Changed: 1  Warnings: 1    mysql> flush  privileges Query OK, 0  rows  affected (0.01 sec)    # 5.6及之前版本  update  mysql. user  set  password = password ( '新密码' where  user = '用户名'  and  host= 'host' ;  

3.设置 login-path 本地快捷登陆

为了防止密码暴露及忘记密码,我们还可以设置 login-path 来实现在本地不输密码快捷登录。

login-path 是 MySQL 5.6 开始支持的新特性。通过借助 mysql_config_editor 工具将登陆 MySQL 服务的认证信息加密保存在 .mylogin.cnf 文件(默认位于用户主目录)。MySQL 客户端工具可通过读取该加密文件连接 MySQL ,实现快捷登录。

假设我们想配置 root 账号在本地快捷登录,可以这么做:

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 # 执行回车后需要输入一次root密码  [root@host ~]# mysql_config_editor  set  --login-path=root -uroot  -hlocalhost -p -P3306   Enter  password :     # 配置完成后可以使用login-path登录  [root@host ~]# mysql  --login-path=root  Welcome  to  the MySQL monitor.  Commands  end  with  or  \g.  Your MySQL  connection  id  is  2919  Server version: 5.7.23-log MySQL Community Server (GPL)    Copyright (c) 2000, 2018, Oracle  and / or  its affiliates.  All  rights reserved.    Oracle  is  a registered trademark  of  Oracle Corporation  and / or  its  affiliates. Other names may be trademarks  of  their respective  owners.    Type  'help;'  or  '\h'  for  help. Type  '\c'  to  clear the  current  input statement.    mysql>  

总结:

本篇文章主要介绍了修改数据库账号密码的几种方法,基本涵盖了所有的场景。这里也提醒下各位,数据库账号最好限制ip段登录,密码尽量复杂些,最好能够定期修改,特别是重要的环境不能有半点马虎。年底了,安全才是王道。

以上就是MySQL修改密码的几种方式的详细内容,更多关于MySQL修改密码的资料请关注服务器之家其它相关文章!

原文链接:https://mp.weixin.qq.com/s/7yaDpqGCkZRnUwNY4d8tsg

可以去百度分享获取分享代码输入这里。
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

【腾讯云】云服务器产品特惠热卖中
搜索
标签列表
    关注我们

    了解等多精彩内容