当前位置: 首页 > 科技观察

MySQL 5.7忘记root密码及修改root密码的方法

时间:2023-03-16 10:54:53 科技观察

MySQL5.7忘记root密码,如何修改~]#mysqld_safe--skip-grant-tables&为了安全,可以这样禁止远程连接:[root@www.woai.it~]#mysqld_safe--skip-grant-tables--skip-networking&使用mysql连接服务器:[root@www.woai.it~]#mysql-p修改密码:mysql>updatemysql.usersetauthentication_string=password('123qwe')whereuser='root'andHost='本地主机';数据库下的user表中没有Password字段,但是加密后的用户密码存放在authentication_string字段中mysql>flushprivileges;mysql>quit;修改完成。重启[root@localhost~]#servicemysqlrestart然后mysql就可以连接了,不过此时好像操作不完整,alteruser...mysql>alteruser'root'@'localhost'identifiedby'123';这也是可能的:mysql>setpasswordfor'root'@'localhost'=password('123');重点介绍mysql5.7root密码修改MySQL管理员密码设置或修改:根据5.6及以后版本官方说明,第一次启动时会在root目录下生成一个随机密码,文件名为.mysql_secret。[root@bright~]#cat/root/.mysql_secret#Passwordsetforuser'root@localhost'at2015-03-2723:12:10:Jj+FTiqvyrF[root@bright~]#cd/usr/local/mysql/bin/[root@brightbin]#./mysqladmin-uroot-hlocalhostpassword'123456'-pEnterpassword:#这一行输入.mysql_secret中第二行的内容。测试是否使用--skip-grant-tables启动mysql失败,可以测试:shell>mysql-uroot-p'password'#password是.mysql_secret中的密码mysql>SETPASSWORD=PASSWORD('newpasswd');老版本,安装后ROOT没有密码,方法一:shell>servicemysqldstop#停止mysql服务shell>mysqld_safe--skip-grant-tables#启动mysqlshellwithoutenablegrant-tablesmode>mysql-uroot-p#Input回车输入命令,提示输入密码时直接回车。mysql>usemysql;mysql>updateusersetpassword=PASSWORD("123456")whereuser="root";#修改密码为newpassordmysql>flushprivileges;#更新权限mysql>quit#退出方法二:shell>servicemysqldstop#停止mysql服务shell>mysqld_safe--skip-grant-tables#Startmysqlshellwithoutgrant-tablesmode>mysql-uroot-p#输入命令回车进入。出现密码提示时,直接回车。mysql>setpasswordforroot@localhost=密码('mysqlroot');方法三:shell>/path/mysqladmin-uUserName-hHostpassword'new_password'-p参考:http://www.jb51.net/article/77858.htm忘记mysqlroot用户密码的解决方法(skip-grant-tables)skip-grant-tables,顾名思义就是跳过数据库启动时权限表的限制,不验证密码直接登录。注意:这种情况只有在忘记root密码,不得不重启数据库的情况下才会用到。现网环境慎用,需要重启数据库,安全难以保障。1、修改配置参数/etc/my.cnf,在[mysqld]下增加:skip-grant-tables配置项。2、重启MySQL使参数生效:servicemysqldrestart3、注意事项此时所有用户登录当前数据库都是无密码的,所以此时数据库的安全性很低。4、修改密码的具体方法:参考上面的介绍5、去掉参数a。修改密码后,去掉配置文件中的skip-grant-tablesb。再次重启数据库。