ERROR Nr.1045

本文介绍了解决在Windows XP SP2环境下安装MySQL时出现的错误1045的具体步骤,包括手动修改配置文件跳过权限检查、重置密码及启动服务的方法。

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

1 问题: 安装mysql时在最后安装过程中,最后执行“Apply security setting”弹出ERROR Nr.1045错误。

 

2 环境: windows xp sp2,防火强已经关闭,可以telnet localhost 3306

 

3 在网上解决方案:

WINDOWS:
方法

      1.以系统管理员身份登陆系统。
      2.打开cmd-----net start 查看mysql是否启动。启动的话就停止net stop mysql.
  3.我的mysql5安装在D:\MySQL\MySQL Server 5.0下。
  4.跳过权限检查启动mysql.
  D:\MySQL\MySQL Server 5.0\bin\mysqld-nt --skip-grant-tables
  5.重新打开cmd。进到D:\MySQL\MySQL Server 5.0\bin下:
  D:\MySQL\MySQL Server 5.0\bin\mysqladmin -uroot flush-privileges password "newpassword"
  D:\MySQL\MySQL Server 5.0\bin\mysqladmin -u root -p shutdown  这句提示你重新输密码。
  6.在cmd里net start mysql
  7.搞定了。

使用上诉方案在step 5还是无法重置密码。

 

4 最终解决方案:

    1.手动停止mysql服务。

    2.修改D:\MySQL\MySQL Server 5.0\ 目录下的my.ini文件,在[mysqld]下添加
    skip-grant-tables

    3.启动mysql服务后就可以以空密码登录

    4.务必修改root密码

    5.把 skip-grant-tables 这一句删掉(在D:\MySQL\MySQL Server 5.0\ 目录下的my.ini文件)

    6.重启mysql服务。

    7.成功登录.

 

5 总结:

遇到问题要迎难而上,多参考下网上提供的参考,结合自己的实际情况进行测试,最后解决。

 

6 遗留问题:

尽管问题解决了,但是我不知道我为什么手动修改 my.ini文件,在[mysqld]下添加
  skip-grant-tables才可以,而通过命令行 却无法办到,无法跳过权限检查,请各位读者给出一些建议或参考

<think>嗯,用户遇到了MySQL安装时的经典错误1045,看起来是root用户访问被拒的问题。结合引用内容来看,这通常发生在重复安装或配置中断的场景。用户可能已经尝试过多次安装,导致密码状态混乱。 用户提供的引用信息很有价值,里面提到两个关键点:一是旧密码残留问题,二是配置流程中断导致密码设置不一致。这和我记忆中MySQL的安装机制吻合——它的配置工具有时会在服务未启动时提前写入密码。 现在需要给用户一个系统性的解决方案。首先应该考虑最安全的途径:通过安装程序自带的配置工具重置密码。如果不行再走强制重置路线。特别要注意提醒用户停止服务的重要性,否则my.ini修改会无效。 用户可能对MySQL的服务操作不熟悉,所以命令要写得完整。另外,遇到这种错误时很多人会反复重装,反而让问题更复杂,需要明确告知清理残留文件的步骤。 安全方面要注意提醒用户更新默认密码,特别是生产环境。最后补充的预防措施其实更重要,毕竟很多用户会忽略防火墙和安装顺序这些细节。</think>MySQL安装过程中出现 **Error Nr.1045 Access denied for user 'root'@'localhost'** 通常是由于旧密码残留、配置中断或服务未启动导致认证失败。以下是系统性的解决方法: --- ### **解决方法步骤** #### **1. 完全卸载并清理旧文件** ```powershell # 以管理员身份运行CMD/PowerShell net stop MySQL sc delete MySQL # 手动删除残留文件: rmdir /S /Q "C:\Program Files\MySQL" rmdir /S /Q "C:\ProgramData\MySQL" # 隐藏目录需显示) ``` #### **2. 重置root密码(安全模式)** ```powershell mysqld --console --skip-grant-tables --shared-memory ``` ```sql /* 新开CMD登录MySQL */ mysql -u root /* 重置密码 */ UPDATE mysql.user SET authentication_string=PASSWORD('NewPassword') WHERE User='root'; FLUSH PRIVILEGES; EXIT; ``` #### **3. 通过安装程序修复** 1. 运行MySQL安装程序 → 选择 **"Reconfigure"** 2. 在 **"Accounts and Roles"** 步骤: - 勾选 **"Configure Authentication Method"** - 选择 **"Use Legacy Authentication"** - **旧密码留空**,直接设置新密码 3. 完成配置后重启服务: ```powershell net start MySQL ``` #### **4. 检查关键配置文件** 编辑 `my.ini` (位于 `C:\ProgramData\MySQL\MySQL Server X.X\`): ```ini [mysqld] skip-grant-tables # 临时添加此行(重置后删除) default_authentication_plugin=mysql_native_password # 确保此项存在 ``` --- ### **预防措施** 1. **关闭防火墙/杀毒软件**:安装期间临时禁用 2. **服务启动顺序**:确保MySQL服务在配置前已启动(`services.msc` 中检查状态) 3. **安装日志检查**:查看 `C:\ProgramData\MySQL\MySQL Installer for Windows\Logs` 中的错误详情 4. **使用管理员权限**:全程以管理员身份运行安装程序和CMD > ⚠️ **注意**:生产环境重置密码后需立即执行 `ALTER USER 'root'@'localhost' IDENTIFIED BY '强密码';` 更新凭证[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值