linux mysql忘记root密码的解决方法(直接修改root密码方法) |
您所在的位置:网站首页 › 网线密码忘记了怎么能找回密码 › linux mysql忘记root密码的解决方法(直接修改root密码方法) |
最近测试环境要迁移到另一组服务器上,之前的数据库、代码等都要迁移。 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 start4.启动后,使用root用户进入mysql,如果提示输入密码,直接按回车即可(安全模式不需要密码,可以直接进) mysql -u root -p5.切换到名叫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 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |