MySQL重置密码终极版

MySQL重置密码终极版

尝试全网很多方法,很鸡肋,基本无法重置 MySQL57 的密码,下面是切实有效的方法:

出现 MySQL 错误 "ERROR 1045 (28000): Access denied for user 'root'@'localhost'" 通常意味着你尝试以 root 用户身份连接到 MySQL 服务器,但提供的密码不正确,或者该用户的访问权限被限制了。以下是一些解决步骤:

1. 重置 MySQL root 密码

在 Windows 上:

  1. 停止 MySQL 服务。以管理员身份运行 cmd ,可以在命令行中运行:

    bash 复制代码
    net stop mysql

    或者如果你使用的是 MySQL 的服务名(例如 MySQL57):

    bash 复制代码
    net stop MySQL57

    不知道服务名,可通过服务查找,Win + R 打开运行,输入 services.msc ,找到 M 开头服务名

    这里查出本机的服务名为 MySQL57

  2. 以无密码模式启动 MySQL:

    先配置好配置文件

    实际路径在 C盘D盘ProgramData 路径下,文件名叫:my.ini

    打开 my.ini ,大致第78行左右配置免密登录

    再以管理员身份打开cmd

    bash 复制代码
    mysqld --skip-grant-tables
  3. 打开一个新的命令行窗口,并连接到 MySQL:

    注意一定要新开一个 cmd 命令窗口,且上面执行的 mysqld --skip-grant-tablescmd 命令窗口不能关闭!!!

    bash 复制代码
    mysql -u root
  4. 选择 mysql 数据库:

    sql 复制代码
    USE mysql;
  5. 重置密码(将 new_password 替换为你想设置的新密码):

    sql 复制代码
    FLUSH PRIVILEGES;
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
  6. 退出并重新启动 MySQL 服务。

  7. 使用新密码尝试连接:

    bash 复制代码
    mysql -u root -p

    然后输入你的新密码。执行如下显示 Welcome to the MySQL monitor...... ,恭喜,密码重置成功!

2. 检查用户权限

如果你只是想确认用户权限而不是重置密码,可以尝试查看 root 用户的权限:

sql 复制代码
SELECT user, host FROM mysql.user WHERE user='root';

确保 host 列中包含 localhost%(后者允许从任何主机连接)。

3. 使用正确的用户和主机名

如果你从远程机器连接,确保使用正确的用户和主机名。例如,如果你从远程机器连接,尝试:

bash 复制代码
mysql -u root -p -h your_server_ip_or_hostname

并确保 root 用户有从该主机连接的权限。

4. 检查防火墙和安全组设置

确保没有防火墙或安全组规则阻止你的连接。检查你的网络设置,确保 MySQL 的默认端口(3306)是开放的。

通过以上步骤,你应该能够解决访问被拒绝的问题。如果问题仍然存在,请检查 MySQL 的错误日志文件以获取更多详细信息。在 Windows 上,错误日志通常位于 MySQL 数据目录中,例如 C:\ProgramData\MySQL\MySQL Server 5.7\data\

5. 注册及卸载MySQL57服务

a.注册 MySQL 为服务

如果想注册 MySQL 为服务(以便系统自动管理):

bash 复制代码
mysqld --install MySQL57

然后通过:

bash 复制代码
net start MySQL57

来启动服务。

过程如图:


b.卸载服务(可选)

如果想卸载 MySQL57 服务:

先通过:

bash 复制代码
net stop MySQL57

来停止服务。

再执行

bash 复制代码
sc delete MySQL57

来卸载服务。

过程如图:


相关推荐
Bert.Cai18 小时前
MySQL CURTIME()函数详解
数据库·mysql
Bert.Cai18 小时前
MySQL CURDATE()函数详解
数据库·mysql
NGSI vimp18 小时前
MySQL|MySQL 中 `DATE_FORMAT()` 函数的使用
数据库·mysql
秋918 小时前
MySQL8.0.46 与 MySQL8.4.9:跨越代际的深度差异解析与升级全指南
mysql
HAWK eoni18 小时前
Mysql 驱动程序
数据库·mysql
xxjj998a18 小时前
Laravel4.x核心特性全解析
android·mysql·laravel
何中应18 小时前
CentOS 7安装、卸载MySQL数据库(二)
数据库·mysql·centos
梁萌19 小时前
mysql使用事件做日志表数据转移
数据库·mysql
lThE ANDE19 小时前
MySQL中的TRUNCATE TABLE命令
数据库·mysql
STER labo20 小时前
mysql配置环境变量——(‘mysql‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件解决办法)
数据库·mysql·adb