MySQL数据库不用密码即可进入mysql

本文介绍了如何解决MySQL命令行可以无密码登录的问题,包括检查mysql.user表中的plugin字段、设置正确的password以及修改my.ini配置文件。通过设置skip-grant-tables,然后更改root用户的密码,最后刷新权限并重启MySQL服务,确保密码设置成功。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

解决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
在这里插入图片描述
!成功将密码设置了,就需要密码才能登入了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值