MySQL修改账号密码方法大全(小结)
前言:
在日常使用数据库的过程中,难免会遇到需要修改账号密码的情景,比如密码太简单需要修改、密码过期需要修改、忘记密码需要修改等。本篇文章将会介绍需要修改密码的场景及修改密码的几种方式。
1.忘记root密码
忘记root密码的场景还是比较常见的,特别是自己搭的测试环境经过好久没用过时,很容易记不得当时设置的密码。这个时候一般常用的方法是跳过权限验证,然后更改root密码,之后再启用权限验证。以MySQL5.7版本为例简单讲下主要过程:
首先修改配置文件,在[mysqld]部分加上一句:skip-grant-tables,加上此参数的目的是跳过权限验证。然后重启数据库,数据库再次启动后,我们就可以不用密码直接登录数据库修改密码了。
#skip-grant-tables模式下修改root密码 [root@host~]#mysql WelcometotheMySQLmonitor.Commandsendwith;or\g. YourMySQLconnectionidis16 Serverversion:5.7.23-logMySQLCommunityServer(GPL) Copyright(c)2000,2018,Oracleand/oritsaffiliates.Allrightsreserved. OracleisaregisteredtrademarkofOracleCorporationand/orits affiliates.Othernamesmaybetrademarksoftheirrespective owners. Type'help;'or'\h'forhelp.Type'\c'toclearthecurrentinputstatement. mysql>updatemysql.usersetauthentication_string=password('xxxxxx')whereuser='root'andhost='localhost'; QueryOK,0rowsaffected,1warning(0.00sec) Rowsmatched:1Changed:0Warnings:1 mysql>flushprivileges; QueryOK,0rowsaffected(0.01sec)
修改完root密码后,再次去除skip-grant-tables参数,然后重启下数据库即可。
2.几种修改密码的方法
除去忘记密码,可能还有其他情景需要修改密码,这时候就可以采取普通方式修改密码了。还是以MySQL5.7版本为例,介绍几种常用的修改密码的方法。
使用alteruser修改
比如如果想更改testuser账号的密码,我们可以使用root账号登录,然后执行alteruser命令更改testuser账号的密码。
mysql>alteruser'testuser'@'%'identifiedby'Password1'; QueryOK,0rowsaffected(0.01sec) mysql>flushprivileges; QueryOK,0rowsaffected(0.00sec)
使用SETPASSWORD命令
使用SETPASSWORD修改密码命令格式为SETPASSWORDFOR'username'@'host'=PASSWORD('newpass');同样是使用root账号可修改其他账号的密码。
mysql>SETPASSWORDFOR'testuser'@'%'=PASSWORD('Password2'); QueryOK,0rowsaffected,1warning(0.00sec) mysql>flushprivileges; QueryOK,0rowsaffected(0.00sec)
使用mysqladmin修改密码
使用mysqladmin命令修改账号密码格式为mysqladmin-u用户名-p旧密码password新密码
[root@host~]#mysqladmin-utestuser-pPassword2passwordPassword3 mysqladmin:[Warning]Usingapasswordonthecommandlineinterfacecanbeinsecure. Warning:Sincepasswordwillbesenttoserverinplaintext,usesslconnectiontoensurepasswordsafety. [root@host~]#mysql-utestuser-pPassword3 mysql:[Warning]Usingapasswordonthecommandlineinterfacecanbeinsecure. WelcometotheMySQLmonitor.Commandsendwith;or\g. YourMySQLconnectionidis2388 Serverversion:5.7.23-logMySQLCommunityServer(GPL) Copyright(c)2000,2018,Oracleand/oritsaffiliates.Allrightsreserved. OracleisaregisteredtrademarkofOracleCorporationand/orits affiliates.Othernamesmaybetrademarksoftheirrespective owners. Type'help;'or'\h'forhelp.Type'\c'toclearthecurrentinputstatement. mysql>
直接updateuser表
其实MySQL所以的账号信息都存储在mysql.user表里面,我们也可以直接通过updateuser表来修改密码。
#5.7及之后版本 mysql>updatemysql.usersetauthentication_string=password('Password4')whereuser='testuser'andhost='%'; QueryOK,1rowaffected,1warning(0.06sec) Rowsmatched:1Changed:1Warnings:1 mysql>flushprivileges; QueryOK,0rowsaffected(0.01sec) #5.6及之前版本 updatemysql.usersetpassword=password('新密码')whereuser='用户名'andhost='host';
3.设置login-path本地快捷登陆
为了防止密码暴露及忘记密码,我们还可以设置login-path来实现在本地不输密码快捷登录。
login-path是MySQL5.6开始支持的新特性。通过借助mysql_config_editor工具将登陆MySQL服务的认证信息加密保存在.mylogin.cnf文件(默认位于用户主目录)。MySQL客户端工具可通过读取该加密文件连接MySQL,实现快捷登录。
假设我们想配置root账号在本地快捷登录,可以这么做:
#执行回车后需要输入一次root密码 [root@host~]#mysql_config_editorset--login-path=root-uroot-hlocalhost-p-P3306 Enterpassword: #配置完成后可以使用login-path登录 [root@host~]#mysql--login-path=root WelcometotheMySQLmonitor.Commandsendwith;or\g. YourMySQLconnectionidis2919 Serverversion:5.7.23-logMySQLCommunityServer(GPL) Copyright(c)2000,2018,Oracleand/oritsaffiliates.Allrightsreserved. OracleisaregisteredtrademarkofOracleCorporationand/orits affiliates.Othernamesmaybetrademarksoftheirrespective owners. Type'help;'or'\h'forhelp.Type'\c'toclearthecurrentinputstatement. mysql>
总结:
本篇文章主要介绍了修改数据库账号密码的几种方法,基本涵盖了所有的场景。这里也提醒下各位,数据库账号最好限制ip段登录,密码尽量复杂些,最好能够定期修改,特别是重要的环境不能有半点马虎。年底了,安全才是王道。
到此这篇关于MySQL修改账号密码方法大全(小结)的文章就介绍到这了,更多相关MySQL修改账号密码内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!