解决MySQL命令行输入不用密码即可登入
接着上一篇出现的问题,汇总了一些资料,查了相关博客,那种情况得到了解决
问题描述:只要输入mysql,后面输入什么都可以直接进数据库
上图
原因有多种 :
1、可能在我们的mysql.user表中的字段plugin的值是:auth_socket,要改为mysql_native_password 具体可参考这篇博客
mysql-5.1.45不用考虑了,我们表中没有这个字段的
2、可能会不会我们mysql.user表中的password值没有设置正确,不过我设置完之后依旧不起效果
3、如果前两个方法都是试了无效果,只能改my.ini文件了
解法:修改my.ini文件
在my.ini文件中加上skip-grant-tables(权限判断,加了这个,mysql将不进行判断是普通用户还是root用户)
在命令行输入
mysql> set password for "root"@"localhost"=password("123456");
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
如果出现了The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
代表上一个操作没有生效
mysql> set password for "root"@"localhost"=password("root");
Query OK, 0 rows affected (0.00 sec)
如果出现了Query OK, 0 rows affected (0.00 sec)
就代表设置成功了
记住一定要出现Query OK,这才代表密码修改成功,之后登入就需要密码才能登入了,但是如果出现问题,没关系,在命令行多输入几次flush privileges;(一次不行就多来几次)(进行刷新权限)
mysql> flush privileges;
Query OK, 0 rows affected (0.02 sec)
之后再执行之前的操作就可以将密码设置成功了,最后在stop、start,把my.ini中的那句话删了skip-grant-tables
!成功将密码设置了,就需要密码才能登入了