windows怎么使用mysql忘记root密码怎么办?教你4种使⽤MySQL⽅式修改密码!(超实⽤)
前⾔:
在⽇常使⽤数据库的过程中,难免会遇到需要修改账号密码的情景,⽐如密码太简单需要修改、密码过期需要修改、忘记密码需要修改等。本篇⽂章将会介绍需要修改密码的场景及修改密码的⼏种⽅式。
1.忘记 root 密码
忘记 root 密码的场景还是⽐较常见的,特别是⾃⼰搭的测试环境经过好久没⽤过时,很容易记不得当时设置的密码。这个时候⼀般常⽤的⽅法是跳过权限验证,然后更改 root 密码,之后再启⽤权限验证。以 MySQL 5.7 版本为例简单讲下主要过程:
⾸先修改配置⽂件,在[mysqld]部分加上⼀句:skip-grant-tables ,加上此参数的⽬的是跳过权限验证。然后重启数据库,数据库再次启动后,我们就可以不⽤密码直接登录数据库修改密码了。
# skip-grant-tables 模式下修改root密码
[root@host ~]# mysql
Welcome tothe MySQL monitor. Commands endwith; or\g.
Your MySQL connectionid is16
Server version: 5.7.23-log MySQL Community Server (GPL)
Copyright (c) 2000, 2018, Oracle and/orits affiliates. Allrights reserved.
Oracle isa registered trademark ofOracle Corporation and/orits
affiliates. Other names may be trademarks oftheir respective
owners.
Type 'help;'or'\h'forhelp. Type '\c'toclear the currentinput statement.
mysql> updatemysql.usersetauthentication_string = password('xxxxxx') whereuser= 'root'andhost = 'localhost';
Query OK, 0 rowsaffected, 1 warning (0.00 sec)
Rowsmatched: 1 Changed: 0 Warnings: 1
mysql> flush privileges;
Query OK, 0 rowsaffected (0.01 sec)
修改完 root 密码后,再次去除 skip-grant-tables 参数,然后重启下数据库即可。
2.⼏种修改密码的⽅法
除去忘记密码,可能还有其他情景需要修改密码,这时候就可以采取普通⽅式修改密码了。还是以 MySQL 5.7 版本为例,介绍⼏种常⽤的修改密码的⽅法。
使⽤ alter user 修改
⽐如如果想更改 testuser 账号的密码,我们可以使⽤ root 账号登录,然后执⾏ alter user 命令更改 testuser 账号的密码。
mysql> alteruser'testuser'@'%'identified by'Password1';
Query OK, 0 rowsaffected (0.01 sec)
mysql> flush privileges;
Query OK, 0 rowsaffected (0.00 sec)
使⽤ SET PASSWORD 命令
使⽤ SET PASSWORD 修改密码命令格式为 SET PASSWORD FOR 'username'@'host' = PASSWORD('newpass'); 同样是使⽤ root 账号可修改其他账号的密码。
mysql> SETPASSWORDFOR'testuser'@'%'= PASSWORD('Password2');
Query OK, 0 rowsaffected, 1 warning (0.00 sec)
mysql> flush privileges;
Query OK, 0 rowsaffected (0.00 sec)
使⽤ mysqladmin 修改密码
使⽤ mysqladmin 命令修改账号密码格式为 mysqladmin -u⽤户名 -p旧密码 password 新密码
[root@host ~]# mysqladmin -utestuser -pPassword2 passwordPassword3
mysqladmin: [Warning] Using a passwordonthe command line interface can be insecure.
Warning: Since passwordwill be sent toserver inplain text, use ssl connectiontoensure passwordsafety.
[root@host ~]# mysql -utestuser -pPassword3
mysql: [Warning] Using a passwordonthe command line interface can be insecure.
Welcome tothe MySQL monitor. Commands endwith; or\g.
Your MySQL connectionid is2388
Server version: 5.7.23-log MySQL Community Server (GPL)
Copyright (c) 2000, 2018, Oracle and/orits affiliates. Allrights reserved.
Oracle isa registered trademark ofOracle Corporation and/orits
affiliates. Other names may be trademarks oftheir respective
owners.
Type 'help;'or'\h'forhelp. Type '\c'toclear the currentinput statement.
mysql>
直接 update user 表
其实 MySQL 所以的账号信息都存储在 mysql.user 表⾥⾯,我们也可以直接通过 update user 表来修改密码。
# 5.7及之后版本
mysql> updatemysql.usersetauthentication_string = password('Password4') whereuser= 'testuser'andhost = '%';
Query OK, 1 row affected, 1 warning (0.06 sec)
Rowsmatched: 1 Changed: 1 Warnings: 1
mysql> flush privileges;
Query OK, 0 rowsaffected (0.01 sec)
# 5.6及之前版本
updatemysql.usersetpassword=password('新密码') whereuser='⽤户名'andhost='host';
3.设置 login-path 本地快捷登陆
为了防⽌密码暴露及忘记密码,我们还可以设置 login-path 来实现在本地不输密码快捷登录。
login-path 是 MySQL 5.6 开始⽀持的新特性。通过借助 mysql_config_editor ⼯具将登陆 MySQL 服务的认证信息加密保存在 .myloginf ⽂件(默认位于⽤户主⽬录)。MySQL 客户端⼯具可通过读取该加密⽂件连接 MySQL ,实现快捷登录。
假设我们想配置 root 账号在本地快捷登录,可以这么做:
# 执⾏回车后需要输⼊⼀次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 tothe MySQL monitor. Commands endwith; or\g.
Your MySQL connectionid is2919
Server version: 5.7.23-log MySQL Community Server (GPL)
Copyright (c) 2000, 2018, Oracle and/orits affiliates. Allrights reserved.
Oracle isa registered trademark ofOracle Corporation and/orits
affiliates. Other names may be trademarks oftheir respective
owners.
Type 'help;'or'\h'forhelp. Type '\c'toclear the currentinput statement.
mysql>
总结:
本篇⽂章主要介绍了修改数据库账号密码的⼏种⽅法,基本涵盖了所有的场景。这⾥也提醒下各位,
数据库账号最好限制ip段登录,密码尽量复杂些,最好能够定期修改,特别是重要的环境不能有半点马虎。年底了,安全才是王道。
以上就是MySQL修改密码的⼏种⽅式的详细内容,有什问题欢迎评论区留⾔。
最后,如果你也想成为程序员,想要快速掌握编程,赶紧加⼊!
⾥⾯有资深专业软件开发⼯程师,在线解答你的所有疑惑~编程语⾔⼊门“so easy”编程学习书籍:
编程学习视频:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论