您的位置:首页 > 数据库 > MySQL

mysql跳过验证登陆

2018-01-09 14:18 225 查看
刚接触mysql,对表和使用都不太熟悉,那天刚安装好一个mysql,然后练习更改root的密码。改错了,5.7版本的user表中的密码字段不是password,而是authentication_string这个字段里面。在desc user的时候看到了这样的字段:

| plugin | char(64) | NO | | mysql_native_password | |
| authentication_string | text | YES | | NULL | |


误以为plugin就是密码字段(技术笨蛋和英语白痴伤不起呀),本着自己会update语句就把user表中root用户的plugin字段当做密码段更新了,接着就被退出了,怎么登陆都登陆不上去了。简直就是奇耻大辱
当时就懵逼了,不知道如何操作,后来百度发现了跳过权限登陆。但是需要关掉mysql服务才可以操作,我的测试机器里面运行同事多个实例,不会停止mysql服务。百度了好多,最后好像把所有mysqld进程全部停掉了,啥也管不了了,后来才发现关闭mysql服务有专门的命令

./bin/mysqladmin -uroot -p -S /tmp/mysql_3306.sock shutdown嗯嗯,开始正题--跳过权限验证直接无密码进入mysql
1、先进入自己的cnf文件里面在[mysqld]段里最后添加skip-grant-tables,这样可以跳过user表里面的验证,做到无密码登录。

2、然后就正常的登陆命令加上-p 但是不需要输入密码了。

3、无密码进入mysql中就可以利用update把plugin字段更改成以前的值,5.7版本中user表里面默认有两个用户,root和mysql.sys。可以用select user,plugin from user;查看另一个用户的plugin值然后再update。在之后关掉mysql服务并注释之前增加的skip-grant-tables
启动就好啦。
参考:http://blog.csdn.net/xyajia/article/details/76746883
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: