CentOS 下mysql ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)

CentOS 下mysql ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)

centos下初始安装完mysql后用root用户登录出错,解决方案如下:

用管理员身份登录mysql

# mysql -p
mysql> 

set password for 'root'@'localhost' =password('');
flush privileges;


<think>好的,用户遇到了MySQL登录时的权限问题,具体错误是ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)。我需要根据提供的引用资料,找出解决方法,并按照用户的要求生成相关问题。 首先,根据引用[1],用户尝试使用mysqladmin命令修改密码但失败。可能的原因包括密码错误、root用户权限配置问题,或者MySQL服务器未运行。引用[2]提到错误1045通常是由于密码错误或用户权限不足。引用[3]和[4]显示在Node.js连接时出现同样错误,可能配置有误。 接下来,我需要整理解决步骤。首先检查MySQL服务是否运行,然后尝试无密码登录,如果不行,可能需要停止服务并使用--skip-grant-tables选项启动,以跳过权限验证,然后重置密码。此外,还要检查用户权限,确保root用户有正确的权限。对于Node.js连接问题,需确认连接参数是否正确,比如密码是否正确,是否存在空格或特殊字符需要转义。 可能还需要考虑其他情况,比如是否使用了正确的主机名,或者是否存在匿名用户覆盖了root权限。另外,使用sudo权限运行命令也可能影响权限设置,需要检查。 最后,生成相关问题,帮助用户深入理解问题,例如如何重置密码、权限配置、服务状态检查等。</think>### 分步解决方案 #### 问题分析 MySQL错误`ERROR 1045 (28000)`表明用户权限验证失败[^2][^3][^4],可能由以下原因导致: 1. 密码输入错误 2.用户未分配访问权限 3. MySQL服务未启动 4. 用户主机配置限制(如仅允许`localhost`访问) #### 解决步骤 1. **验证MySQL服务状态** ```bash systemctl status mysql # Ubuntu/CentOS ``` 若未运行,启动服务: ```bash systemctl start mysql ``` 2. **尝试无密码登录** ```bash mysql -u root ``` 若成功,则需重置密码: ```sql ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; FLUSH PRIVILEGES; ``` 3. **安全模式重置密码(若步骤2失败)** ```bash sudo systemctl stop mysql sudo mysqld_safe --skip-grant-tables & mysql -u root ``` 在MySQL中执行: ```sql UPDATE mysql.user SET authentication_string=PASSWORD('新密码') WHERE User='root'; FLUSH PRIVILEGES; EXIT; ``` 重启MySQL服务: ```bash sudo systemctl restart mysql ``` 4. **检查用户权限** ```sql SELECT Host, User FROM mysql.user; ``` 若缺少`root@localhost`条目,添加权限: ```sql CREATE USER 'root'@'localhost' IDENTIFIED BY '密码'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES; ``` 5. **验证Node.js连接配置** ```javascript var connection = mysql.createConnection({ host: 'localhost', user: 'root', password: '正确密码', // 检查特殊字符转义 database: 'test' }); ``` 使用`mysql_native_password`插件验证: ```sql ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码'; ``` #### 验证结果 ```bash mysql -u root -p # 输入新密码后应成功登录 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值