linux中mysql忘记root密码如何登陆
首先确保服务器处于安全模式,因为修改密码期间数据库处于没有密码保护的状态。
进行如下操作:
1、关闭mysql服务 sc stop mysql
2、以安全模式启动mysql
mysqld -- skip-grant-tables
建议通过修改配置文件实现安全启动:
vi /etc/my.cnf
在[mysqld]段中加上一句: skip-grant-tables
保存并退出
3、重新启动mysqld
service mysqld restart
4、登陆mysql
直接输入mysql -u root -p 回车, (忽略密码)再回车;
5、更改root密码
UPDATE mysql.user SET Password=PASSWORD('xxx') where USER='root';
更改密码时出现错误:
ERROR 1054 (42S22): Unknown column 'Password' in 'field list'
原因:数据库下没有Password字段
解决办法:
查找数据库mysql的user表
show databases;
use mysql;
show tables;
select * from user;
发现没有Password字段,Password字段改成了authentication_string
使用该字段重新修改root密码即可:
update mysql.user set authentication_string=password('xxx') where user='root' ;
注意: mysql新版本用于存用户密码的字段名为authentication_string而不是 password,且新密码必须使用password函数进行加密
6、修改完密码以后再打开配置文件,将skip-grant-tables注释掉。
vi /etc/my.cnf
#skip-grant-tables
7、重新运行mysql,即可使用新密码进行登陆。
service mysqld restart
作者:孙天飞
来源链接:https://www.cnblogs.com/tianzhendengni/p/15174514.html
版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。
2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。