解决mysql密码错误,在my.ini里添加skip-grant-tables都没有用

1、停止数据库

net stop mysql

2、在mysql的bin目录下,打开cmd窗口,运行如下命令:注意下面的路径是ProgramData下MySQL中my.ini文件的路径
(感觉这和直接在my.ini文件里添加ship-grant-tables没有什么两样,但我在my.ini文件里试过多次,没有一次管用,真的绝望)

mysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.7\my.ini" --skip-grant-tables

3、任意打开第二个cmd,连接mysql

mysql -uroot -p

遇到需要输入密码时,直接回车,就可以进去

4、连接好mysql之后,运行命令

show databases;

5、继续使用如下命令

use mysql;

6、使用命令修改root密码(两种情况)

  • 版本为5.7以前的mysql,运行这条语句(此处的新密码为你要设置的新密码)
UPDATE user SET Password=PASSWORD('新密码') where USER='root';update mysql.user set password=PASSWORD("root") where User="root";
  • 版本为5.7及其之后的运行这条语句
UPDATE user SET authentication_string=PASSWORD('新密码') where USER='root';update mysql.user set authentication_string=PASSWORD("root") where User="root";

原因是:mysql中密码的字段名由password变为了authentication_string

For Mysql before 5.7 it is "password"

Since MySQL 5.7 it is "authentication_string"

7、刷新权限

FLUSH PRIVILEGES;

8、退出数据库

quit

9、重新登录数据库,并输入密码就可以了

mysql -uroot -p

 

### 设置 `skip-grant-tables` 绕过权限表 对于早期版本的 MySQL,可以在配置文件 `my.ini` 中通过 `[mysqld]` 下添加 `skip-grant-tables` 来绕过权限验证[^1]。然而,在较新的版本特别是 MySQL 8.0 及以上版本中,这种方法可能不再有效。 #### 方法一:直接修改 `my.ini` 尽管在某些情况下直接编辑 `my.ini` 文件并不可靠,仍然可以尝试: 1. 找到 MySQL 安装目录下的 `my.ini` 文件。 2. 使用文本编辑器打开该文件,并定位至 `[mysqld]` 节点之后的位置。 3. 添加如下行: ```ini [mysqld] skip-grant-tables=ON ``` 需要注意的是,这种方式并不总是奏效,尤其是在 Windows 平台上可能会遇到权限问题或其他未知因素影响其正常工作[^2]。 #### 方法二:命令行参数启动 更可靠的解决方案是在命令行中指定默认配置文件以及启用跳过授权表的功能来临时解决问题: ```bash mysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.7\my.ini" --skip-grant-tables --shared-memory ``` 上述指令适用于特定路径下的 MySQL 实例;实际操作时应替换为当前系统的正确路径[^3]。 #### 修改密码流程 当成功以不带认证的方式启动 MySQL 后,可以通过另一个 CMD 窗口连接数据库并对 root 用户重置密码: ```sql UPDATE mysql.user SET authentication_string='' WHERE user='root'; FLUSH PRIVILEGES; ``` 完成这些更改后记得重启 MySQL 服务使新设置生效。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值