200字
Navicat远程连接linux下mysql服务器1045错误解决办法在这儿1045 -Access denied for user 'root'@'OpenWrt' (using password: YES) 确定
2026-01-29
2026-01-29

1. 问题描述

错误代码: 1045 - Access denied for user 'root'@'OpenWrt' (using password: YES)

原因分析:

  • 数据库用户 root 默认只允许 localhost(本地)登录。

  • 客户端(如 OpenWrt 路由器或其他远程主机)尝试通过 IP 连接时被拒绝。

2. 解决步骤

第一步:登录数据库

通过 SSH 终端登录到数据库服务器,输入以下命令进入 MySQL 命令行界面:

mysql -u root -p

(输入当前 root 密码并回车,进入 mysql> 提示符)

第二步:执行授权命令

mysql> 提示符下,执行以下 SQL 语句,允许 root 用户从任何 IP(%)登录,并指定密码:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密码' WITH GRANT OPTION;

注意: 请将 '你的密码' 替换为你实际想要设置的密码(例如之前的 277e8e1d01e46169)。

第三步:刷新权限

为了使刚才的设置立即生效,必须执行刷新命令:

FLUSH PRIVILEGES;

第四步:退出数据库

输入 exit 并回车,返回到 Linux 终端界面。

exit;

3. 补充说明(版本差异)

如果你的数据库是 MySQL 8.0 或更高版本,上述第二条命令可能会报错。请使用以下步骤代替:

  1. 创建用户(如果用户不存在):

    CREATE USER 'root'@'%' IDENTIFIED BY '你的密码';
  1. 授权:

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
  1. 刷新权限:

    FLUSH PRIVILEGES;

4. 故障排查

如果执行完上述步骤仍无法连接,请检查以下两点:

  1. 服务器防火墙:
    确保服务器的防火墙(如 firewalld 或 iptables)已放行 3306 端口。

  2. 数据库绑定地址:
    检查数据库配置文件(通常在 /etc/my.cnf),确保 bind-address 不是 127.0.0.1,可以将其注释掉或改为 0.0.0.0,然后重启数据库服务。

文档记录时间:当前日期
*适用环境:CentOS 7 / MySQL / MariaDB*

评论