mysql 1045 access denied for user 解决方法

本文提供了解决MySQL root密码遗忘的方法,包括在Linux和Windows系统下通过不同途径重置密码的具体步骤。适用于忘记MySQL root密码的情况。
提示:1045 access denied for user 'root'@'localhost' using password yes
方法一: 
# /etc/init.d/mysql stop 
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking & 
# mysql -u root mysql 
mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root'; 
mysql> FLUSH PRIVILEGES; 
mysql> quit 
# /etc/init.d/mysql restart 
# mysql -uroot -p 
Enter password: <输入新设的密码newpassword> 
mysql> 
方法二: 
直接使用/etc/mysql/debian.cnf文件中[client]节提供的用户名和密码: 
# mysql -udebian-sys-maint -p 
Enter password: <输入[client]节的密码> 
mysql> UPDATE user SET Password=PASSWORD(’newpassword’) where USER=’root’; 
mysql> FLUSH PRIVILEGES; 
mysql> quit 
# mysql -uroot -p 
Enter password: <输入新设的密码newpassword> 
mysql> 

内容来自: 脚本之家 www.jb51.net 

另一个方法
Windows:

1. 管理员登陆系统,停止mysql服务或者结束mysqld-nt进程
2. 进入命令行,来到mysql的安装目录.假设安装目录为 d:\mysql\ , CMD进入命令行
3. 运行 d:\mysql\bin\mysqld-nt --skip-grant-tables 启动mysql,关闭权限的检查
4. 运行 d:\mysql\bin\mysqladmin -u root flush-privileges password "newpassword" 重设root密码
5. 重新启动mysql服务

第4步也可以直接修改mysql表,所用到的SQL语句同linux部分,这里就不再重复了.
### MySQL 1045 Access Denied 错误解决方案 MySQL 1045错误表示用户尝试登录时被拒绝访问。此问题可能由多种原因引起,包括密码错误、权限不足、配置文件错误等[^1]。以下是针对该问题的详细分析与解决方法: #### 1. 确认MySQL服务是否运行 如果MySQL服务未启动,将导致无法连接。可以通过以下命令检查服务状态: ```bash net start | findstr "MySQL" ``` 若服务未启动,可以使用以下命令启动服务: ```bash net start MySQL ``` #### 2. 检查密码是否正确 密码错误是导致1045错误的主要原因之一。如果不确定密码是否正确,可以尝试重置root用户的密码。以下是具体步骤: - 停止MySQL服务: ```bash net stop MySQL ``` - 使用安全模式启动MySQL服务: ```bash mysqld --skip-grant-tables ``` - 登录MySQL: ```bash mysql -u root ``` - 修改root用户的密码: ```sql ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; ``` 确保新密码符合MySQL的安全要求,例如长度至少为6位[^3]。 #### 3. 检查权限设置 如果用户权限不足,也可能导致1045错误。可以通过以下命令检查和授予必要的权限: ```sql SHOW GRANTS FOR 'root'@'localhost'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES; ``` #### 4. 检查MySQL配置文件 MySQL的配置文件(如`my.ini`或`my.cnf`)可能存在错误配置,导致连接失败。需要确认以下内容: - 配置文件路径是否正确。 - 是否存在不正确的绑定地址或端口号设置。例如,确保`bind-address`设置为`127.0.0.1`或`0.0.0.0`[^2]。 #### 5. 检查客户端IP和端口 如果从远程主机连接MySQL,需确保服务器允许来自该IP的连接。可以通过以下命令检查并修改权限: ```sql SELECT host, user FROM mysql.user; GRANT ALL PRIVILEGES ON *.* TO 'root'@'客户端IP' IDENTIFIED BY '密码'; FLUSH PRIVILEGES; ``` #### 6. 确保防火墙未阻止连接 防火墙可能会阻止MySQL端口(默认为3306)的访问。可以通过以下命令检查和开放端口: ```bash netsh advfirewall firewall add rule name="Open MySQL Port" dir=in action=allow protocol=TCP localport=3306 ``` 通过以上步骤,可以有效解决MySQL 1045 Access Denied错误[^4]。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值