详解mysql5.7密码忘记解决方法
ENV:
[root@centos7~]#uname-r 3.10.0-514.el7.x86_64 [root@centos7~]#cat/etc/redhat-release CentOSLinuxrelease7.3.1611(Core) [root@centos7~]#rpm-qamysql [root@centos7~]#rpm-qa|grepmysql mysql-community-common-5.7.26-1.el7.x86_64 mysql-community-client-5.7.26-1.el7.x86_64 mysql57-community-release-el7-11.noarch mysql-community-server-5.7.26-1.el7.x86_64 mysql-community-libs-5.7.26-1.el7.x86_64 mysql-community-libs-compat-5.7.26-1.el7.x86_64
登陆时出错:
[root@centos7~]#mysql-uroot-p Enterpassword: ERROR1045(28000):Accessdeniedforuser'root'@'localhost'(usingpassword:NO)
密码忘记了(和刚安装后不知道密码一样)
网上有人说mysql的密码是空密码,其实在mysql5.7版本之后,密码不再是空密码了,
如果是刚安装的,可以在mysql的日志文件找到
grep'temporarypassword'/var/log/mysqld.log
补充:如果找到mysql提供的密码,可以使用
mysqladmin-uroot-p'mysql提供的密码'password‘自己的新密码'
直接修改mysql的密码,但这种方法存在安全隐患,毕竟密码在命令行上显示了,不建议但不反对。
如果是忘记,修改如下:
1.修改/etc/my.cnf,加入skip-grant-tables;
[root@centos7~]#vim/etc/my.cnf
空白位置加入,并保存退出;
[mysqld] skip-name-resolve skip-grant-tables
[root@centos7~]#systemctlrestartmysqld
2.空密码直接进入mysql;
[root@centos7~]#mysql-uroot-p Enterpassword:(这里是空密码,直接回车) WelcometotheMySQLmonitor.Commandsendwith;or\g. YourMySQLconnectionidis2 Serverversion:5.7.26MySQLCommunityServer(GPL) Copyright(c)2000,2019,Oracleand/oritsaffiliates.Allrightsreserved. OracleisaregisteredtrademarkofOracleCorporationand/orits affiliates.Othernamesmaybetrademarksoftheirrespective owners. Type'help;'or'\h'forhelp.Type'\c'toclearthecurrentinputstatement. mysql>
进入mysql库;
mysql>usemysql Readingtableinformationforcompletionoftableandcolumnnames Youcanturnoffthisfeaturetogetaquickerstartupwith-A Databasechanged mysql>
这里的mysql并不是没变,数据库位置是变化的;
3.修改密码:UPDATEuserSETauthentication_string=PASSWORD('newpassword')whereUSER='root';
mysql>UPDATEuserSETauthentication_string=PASSWORD('newpassword')whereUSER='root'; QueryOK,1rowaffected,1warning(0.00sec) Rowsmatched:1Changed:1Warnings:1 mysql> mysql>FLUSHPRIVILEGES; QueryOK,0rowsaffected(0.00sec) mysql>
4改回/etc/my.cnf
注释掉#skip-grant-tables
[root@centos7~]#vim/etc/my.cnf
[mysqld] skip-name-resolve #skip-grant-tables
[root@centos7~]#systemctlrestartmysqld
5.用新的密码再进入mysql;
[root@centos7~]#mysql-uroot-p Enterpassword:(之前演示为newpassword) WelcometotheMySQLmonitor.Commandsendwith;or\g. YourMySQLconnectionidis6 Serverversion:5.7.26 Copyright(c)2000,2019,Oracleand/oritsaffiliates.Allrightsreserved. OracleisaregisteredtrademarkofOracleCorporationand/orits affiliates.Othernamesmaybetrademarksoftheirrespective owners. Type'help;'or'\h'forhelp.Type'\c'toclearthecurrentinputstatement. mysql>
6.更改root密码,更改root密码:alteruser'root'@'localhost'identifiedby'密码';
修改用户密码;
ALTERUSERtestuserIDENTIFIEDBY'123456';
修改当前登录用户
ALTERUSERUSER()IDENTIFIEDBY'123456';
mysql>alteruseruser()identifiedby'Linuxpassword!@#'; ERROR1819(HY000):Yourpassworddoesnotsatisfythecurrentpolicyrequirements mysql>alteruseruser()identifiedby'LINUX123password!@#'; QueryOK,0rowsaffected(0.00sec) mysql>
可以看出,密码的复杂度有了很大的要求;
7.修改完成后就可以继续操作mysql了
mysql>showdatabases; +--------------------+ |Database| +--------------------+ |information_schema| |mysql| |performance_schema| |sys| +--------------------+ 4rowsinset(0.00sec) mysql>exit Bye
以上所述是小编给大家介绍的mysql5.7密码忘记解决方法详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!