首页 > 数据库 > MySQL > 正文

windows下重置mysql的root密码方法介绍

2024-07-24 12:50:49
字体:
来源:转载
供稿:网友

今天发现 WordPress 连接不上数据库,登录 window server 服务器查看,所有服务均运行正常。

使用 root 账号登录 mysql 数据库,结果提示密码不匹配。我突然意识到,服务器可能遭受到 SQL注入 攻击了……

至于事故发生的原因和之后所做的补救措施,以后有机会我会聊一聊的。这里我主要讲一下 mysql 用户密码的重置步骤。

重置 root 密码
在忘记 root 密码的情况下,可以进入 mysql 的安全模式,重置 root 密码。

1. 停止 MySQL 服务

打开命令提示符窗口,输入 net stop mysql 关闭 MySQL 服务。

C:/Users/Administrator>net stop mysql57MySQL57 服务正在停止..MySQL57 服务已成功停止。

↑ 服务名称不一定都是 mysql,比如我的就是 mysql57,57代表版本号为5.7

当然你也可以通过计算机管理面板关闭 MySQL 服务。

2. 切换到 bin 目录

在命令提示符窗口中,通过 cd 命令切换到 mysql 安装目录下的 bin 目录。

C:/Users/Administrator>cd C:/Program Files/MySQL/MySQL Server 5.7/binC:/Program Files/MySQL/MySQL Server 5.7/bin>

↑ 默认安装目录为 C:/Program Files/MySQL/MySQL Server

3. 进入安全模式

在 bin 目录下输入 mysqld --skip-grant-tables ,跳过权限检查启动 mysql。

如果你配置了 my.ini 文件,则需要将其引入: mysqld --defaults-file="../my.ini" --skip-grant-tables

[mysqld]basedir = "C:/ProgramData/MySQL/MySQL Server 5.7"datadir = "C:/ProgramData/MySQL/MySQL Server 5.7/Data"

↑ 我在 my.ini 文件中指定了数据的存放路径,如果不引入配置文件,则会提示 No such file or directory 错误。

4. 重置账户密码

打开另一个命令提示符窗口(别关闭安全模式窗口),同样切换到 mysql / bin 目录,输入 mysql 跳过权限验证连接数据库。

C:/Program Files/MySQL/MySQL Server 5.7/bin>mysqlServer version: 5.7.16 MySQL Community Server (GPL)Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.Type 'help;' or '/h' for help. Type '/c' to clear the current input statement.mysql>

↑ 也可以指定连接参数 mysql -u <用户名> -p <密码> -h <连接地址> -P <端口号> -D <数据库>

执行 update mysql.user set authentication_string="" where user="root"; 重置 root 用户的密码(5.7 之前为 password 字段)。

mysql> update mysql.user set authentication_string="" where user="root";Query OK, 1 row affected (0.00 sec)mysql> select user,authentication_string from mysql.user/G*************************** 1. row *************************** user: rootauthentication_string:*************************** 2. row *************************** user: mysql.sysauthentication_string: *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE2 rows in set (0.00 sec)
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表