linux mysql忘记root密码的解决方法(直接修改root密码方法)

您所在的位置:网站首页 qq忘记密码了怎么重新设置密码 linux mysql忘记root密码的解决方法(直接修改root密码方法)

linux mysql忘记root密码的解决方法(直接修改root密码方法)

2023-12-21 16:30| 来源: 网络整理| 查看: 265

最近测试环境要迁移到另一组服务器上,之前的数据库、代码等都要迁移。 mysql数据库被迁移到了新服务器后,迁移人员换了mysql密码,竟然没有告诉我们(甚至不知道应该找哪个人要密码);因此自己想了个办法,总算是能用旧密码登录了。

反正是测试服务器,领导都说随便搞了,所以没问题(还好不用删了mysql重装)。

Mysql是5.7.26版本的,网上的教程有的旧了,本文亲测可用。

直接修改root密码详细流程:

1.登录linux服务器,可以使用sudo的账号即可。

2.执行命令,修改mysql配置文件:

sudo vi /etc/my.cnf

打开后,找到[mysqld]中的#skip-grant-tables,然后把注释打开,大概在这个位置:

port = 3306 default_password_lifetime = 0 skip-grant-tables

然后wq保存并退出

3.执行命令,重启mysql,已经是安全模式了

sudo service mysql stop sudo service mysql start

4.启动后,使用root用户进入mysql,如果提示输入密码,直接按回车即可(安全模式不需要密码,可以直接进)

mysql -u root -p

5.切换到名叫mysql的数据库,然后执行update命令,修改root的密码,如下; 注意,5.7.26版Mysql的密码字段不叫password,而是叫authentication_string:

use mysql update user set authentication_string=password('#123456@') where user='root'; //刷新系统权限表 flush privileges;

这段代码将密码改为#123456@,password的意思是加密成密码串。

注意,安全模式下,下方修改用户密码的语句无法使用,会报错:

alter user root identified by '#123456@';

6.如果想让外部也能用这个账号密码登陆,那就把user表中的host字段改为%(root的host默认是localhost,表示只能在本机登陆)

update user set host='%' where user='root123';

一般还是insert个host为%的用户好一些。

7.现在root用户的密码就修改完毕了,再次改回my.cnf文件,注释skip-grant-tables:

port = 3306 default_password_lifetime = 0 #skip-grant-tables

然后重启mysql,大功告成:

sudo service mysql stop sudo service mysql start 总结:

1.mysql的账号密码都存储在mysql.user中,mysql是数据库名,user是表名;表中有3个字段常用,user字段是用户名,authentication_string是加密后的密码,host是允许登录的ip。 2.user表中的密码字段是authentication_string,而不是password。(5.7.26版Mysql) 3.如果想在外部用账号密码访问mysql,可以在user表中新增一行,host设置为%,user设置为用户名,authentication_string是加密后的密码,其它字段参考其它行即可。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3