在我们开发中,可能由于项目或者事情比较多时,忘记自己当初设置的mysql密码,或者记录mysql密码的文档找不到了,导致无法连接数据库,从而影响到正常的业务需求。现在教大家如何,跳过mysql权限验证密码,直接无密码进入mysql。
- 修改MySQL的配置文件(默认为/etc/my.cnf),在[mysqld]下添加一行skip-grant-tables。
- 保存配置文件后,重启MySQL服务 service mysqld restart(注:根据自己的情况重启mysql)。
- 再次进入MySQL命令行 mysql -uroot -p,输入密码时直接回车,就会进入MySQL数据库了,这个时候按照常规流程修改root密码即可。
- 进入mysql,输入以下命令:
use mysql;
- mysql 5.7 以下版本输入以下命令:
update user set password = password('your password') where user = 'root';
- mysql 5.7(包含) 以上版本输入以下命令:
update user set authentication_string = password('your password') where user = 'root';
- 更新完密码,要记得刷新MySQL的系统权限相关表,以防止更改后拒绝访问;
flush privileges;
注意:mysql 5.7(包含)以上或centons7以上版本,设置密码时,最好数字、字母大小写、符号都包含,否则会出现修改密码失败。
最后删除或者注释 mysql (默认为/etc/my.cnf)配置文件中的 skip-grant-tables ,重启mysql服务即可。
再次输入新的密码即可进入mysql,到此结束。