mysql 1045重置密码失败_mysql的root密码丢失重置之ERROR 1045 (28000)

最新版的5.5.15的mysql在windows下安装到是蛮顺利(还支持至强cup不错不错),不过老是提示我root不对,在我登录的时候,另我十分崩溃,

在我重置了几次密码,依然无效的情况下,我崩溃了,准备换掉Windows系统,无意中打了系统的补丁,再卸载重新安装,居然好了,至今不知道是补丁的问题,还是重装的问题!

告诫下,下载再给windows装软件的时候最好更新下补丁包,省得出现此种怪事

命令行的一闪而过,可以cd到安装目录的bin下执行mysql遭遇:ERROR 1045 (28000): Access denied for user ‘root’@'localhost’ (using password: YES)解决之道

一.以系统管理员身份登入windows系统。

2.如果mysql是启动的,先将它关闭。

3.打开命令视窗cmd。

如果在上一步骤,没有关闭mysql,可以用net start 查看mysql是否还在启动状态。在启动状态的话,就用net stop mysql的指令停止。

4.切换到mysql的安装路径的bin资料夹内,如果是预设路径,应该在的D:\MySQL\MySQL Server 5.5.15\bin之下。

5.执行mysqld –skip-grant-tables,这个指令用以启动mysql,但会跳过权限检查。

6.上个指令执行完后,命令视窗就停在mysql的运行状态,不能再输入指令了,所以要重新打开一个新的cmd命令视窗。

同样切换到mysql的安装路径的bin资料夹内,执行mysql

7.在mysql>的模式下,执行

代码如下

update mysql.user set password=PASSWORD(’123456′) where user=’root’;

flush privileges;

quit;

上面的步骤就可将忘记的密码重设。

8.回到dos命令模式,执行mysqladmin -u root -p shutdown,输入刚改过的密码123456。关掉目前mysql无权限的模式。

9.再正常启动mysql。

10.再输入 mysql -u root -p

就可以输入你的正确的密码了

二.Unix&Linux:

1.用root或者运行mysqld的用户登录系统;

2.利用kill命令结束掉mysqld的进程;

3.使用–skip-grant-tables参数启动MySQL Server

代码如下

shell>;mysqld_safe –skip-grant-tables &(写全路径)

4.为root@localhost设置新密码

代码如下

shell>;mysqladmin -u root flush-privileges password “newpassword”,或直接进入mysql表中修改Password

如:

>;use mysql

>;update user set password=password(“new_pass” where user=”root”;

>;flush privileges;

5.重启MySQL Server

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当您在尝试登录MySQL数据库时遇到“ERROR 1045 (28000) Access denied for user 'root'@'localhost'”错误信息,这通常表示您的MySQL服务器正在拒绝使用当前提供的用户名和密码组合登录。以下是可能导致此错误的一些常见原因及相应的解决步骤: ### 常见原因: 1. **用户名不存在**:您输入的用户名可能并不存在于MySQL的用户列表中。 2. **密码不匹配**:提供的密码与数据库中保存的密码不一致。 3. **权限设置问题**:即使用户名存在,如果其权限不足以允许登录到特定的数据库、模式或其他受限资源,则也可能导致访问被拒绝。 4. **防火墙限制**:系统或网络级别的安全配置可能会阻止某些来源的连接。 5. **MySQL服务未运行**:MySQL服务器可能已经停止运行。 6. **配置文件错误**:如`my.cnf`或`mysqld.ini`等配置文件中的设置可能阻止了正确的连接。 ### 解决步骤: #### 检查密码和用户名是否正确 1. 确认您输入的用户名和密码是否准确无误。注意区分大小写,并检查是否存在拼写错误。 - **提示**:建议使用文本编辑器直接查看数据库管理工具中存储的密码(例如,在MariaDB中,可以使用`SHOW VARIABLES LIKE 'secure_file_priv';`命令检查),确认密码是否正确。 #### 检查权限设置 1. 使用`SHOW GRANTS FOR <username>`命令查询用户的权限详细情况,确认是否具备登录所需的权限。 - **提示**:如果结果显示用户具有足够的权限,但仍无法登录,可能是其他配置错误所致。 #### 验证MySQL服务状态 1. 检查MySQL服务是否正常运行。您可以使用系统管理工具(如Windows的服务管理器或Linux的`service mysql status`)来验证服务状态。 - **提示**:确保服务已启动并且没有报错信息。 #### 修改密码或创建新用户 1. 如果发现密码错误或忘记密码,可以通过`mysqladmin`命令重置密码: ```bash sudo mysqladmin -u root password new_password ``` 或者通过MySQL客户端执行SQL命令: ```sql UPDATE mysql.user SET Password=PASSWORD('new_password') WHERE User='root'; FLUSH PRIVILEGES; ``` 2. 创建新的数据库用户并授予相应权限(推荐做法): ```sql CREATE USER 'new_username'@'localhost' IDENTIFIED BY 'password'; GRANT ALL ON database_name.* TO 'new_username'@'localhost'; FLUSH PRIVILEGES; ``` #### 更新防火墙规则 1. 检查并更新系统的防火墙规则,确保它允许从本地主机(或您的预期源)连接MySQL服务。 - **提示**:在Linux环境中,可以使用`ufw`或`iptables`命令调整防火墙设置;在Windows环境下,可能需要修改Windows Defender的设置。 #### 检查MySQL配置 1. 查看`my.cnf`或`mysqld.ini`配置文件中与安全性相关的设置,如`skip-grant-tables`选项是否被激活。 - **提示**:如果在调试过程中发现`skip-grant-tables`启用,可能会影响数据库的安全性和完整性。 ### 相关问题: 1. 当在远程服务器上尝试登录时,如何处理防火墙设置? 2. 在生产环境部署时,应如何妥善管理MySQL的用户权限? 3. 当忘记MySQL管理员密码时,是否有更安全的方式来恢复密码而不影响数据安全?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值