当前位置: 首页 > news >正文

HeidiSQL 连接 MySQL 报错 10061

遇到 HeidiSQL 连接 MySQL 报错 10061(Connection refused)时,通常与 网络配置、MySQL 服务状态或权限设置 有关。以下是详细的排查和解决方案:


一、错误原因分析

错误 10061 表示客户端(HeidiSQL)无法与 MySQL 服务器建立连接,常见原因包括:

  1. MySQL 服务未运行
  2. MySQL 未监听指定的 IP 或端口
  3. 防火墙/安全组阻止连接
  4. 用户权限未允许远程访问
  5. HeidiSQL 配置错误(如主机名、端口、用户或密码不正确)。

二、解决方案

步骤 1:确认 MySQL 服务是否运行
# Linux
sudo systemctl status mysql  # 检查服务状态
sudo systemctl start mysql   # 若未运行,启动服务# Windows
通过服务管理器检查 MySQL 服务状态,或在命令行运行:
net start mysql

步骤 2:检查 MySQL 监听的地址和端口
  1. 查看 MySQL 监听的 IP 和端口

    # Linux
    ss -tuln | grep 3306  # 默认端口 3306
    # 或
    netstat -tulnp | grep mysql# Windows
    netstat -ano | findstr :3306
    
  2. 常见问题

    • 如果输出显示 127.0.0.1:3306,则 MySQL 仅监听本地连接。
    • 如果显示 0.0.0.0:3306,则允许所有 IP 连接。
  3. 修改 MySQL 配置文件(若需允许远程连接):

    # 编辑 MySQL 配置文件(路径如 /etc/mysql/my.cnf 或 /etc/my.cnf)
    [mysqld]
    bind-address = 0.0.0.0  # 允许所有 IP 连接(注意安全性)
    # 或指定具体 IP,如 bind-address = 192.168.1.100
    
  4. 重启 MySQL 生效配置

    sudo systemctl restart mysql
    

步骤 3:检查防火墙/安全组
  1. 临时关闭防火墙测试(仅限测试环境):

    # Ubuntu/Debian
    sudo ufw disable# CentOS/RHEL
    sudo systemctl stop firewalld# Windows
    暂时关闭 Windows 防火墙
    
  2. 若需保留防火墙,开放 3306 端口

    # Ubuntu/Debian
    sudo ufw allow 3306/tcp# CentOS/RHEL
    sudo firewall-cmd --permanent --add-port=3306/tcp
    sudo firewall-cmd --reload# 云平台(如 AWS/Azure):
    确保安全组允许入站流量到 3306 端口
    

步骤 4:确保用户有远程访问权限
  1. 登录 MySQL 并检查用户权限

    mysql -u root -p
    
  2. 创建或修改允许远程访问的用户

    -- 示例:创建允许从任意 IP 连接的用户
    CREATE USER 'remote_user'@'%' IDENTIFIED BY '密码';
    GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    

    注意:避免直接使用 root 用户远程登录,建议创建专用用户。


步骤 5:验证网络连通性

从 HeidiSQL 所在的客户端机器测试到 MySQL 服务器的端口连通性:

telnet 服务器IP 3306  # 若成功,会显示空白;若失败,说明连接被阻断

步骤 6:检查 HeidiSQL 配置
  1. 确保配置正确

    • 主机名/IP:填写 MySQL 服务器的 IP 地址(而非 localhost,除非是本地连接)。
    • 端口:默认 3306,若修改过需对应。
    • 用户名和密码:确保与 MySQL 中的用户匹配。
  2. 示例配置
    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


步骤 7:尝试本地连接测试

如果问题仅出现在远程连接,尝试通过本地连接验证 MySQL 是否正常:

mysql -u 用户名 -p -h 127.0.0.1  # 使用 IP 而非 localhost

三、常见场景处理

场景 1:本地连接失败
  • 可能原因root@localhost 使用了 auth_socket 插件(无需密码)。
  • 解决方法
    -- 切换为密码认证
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';
    FLUSH PRIVILEGES;
    
场景 2:远程连接被拒绝
  • 可能原因:MySQL 默认禁止远程 root 登录。
  • 解决方法
    CREATE USER 'remote_user'@'%' IDENTIFIED BY '密码';
    GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION;
    

四、验证连接

完成上述步骤后,在 HeidiSQL 中重新尝试连接:

  1. 打开 HeidiSQL,点击 新建会话
  2. 填写正确的 主机名/IP、端口、用户名和密码
  3. 点击 测试连接,确认是否成功。

五、总结

问题类型解决方案
服务未运行启动 MySQL 服务。
端口未监听修改 bind-address 配置并重启服务。
防火墙阻止开放 3306 端口或暂时关闭防火墙。
用户权限不足创建允许远程访问的用户并授权。
HeidiSQL 配置错误确保主机名/IP、端口、用户名和密码正确。

如果问题仍未解决,请提供以下信息以便进一步诊断:

  1. HeidiSQL 的连接配置截图(隐藏密码)。
  2. MySQL 服务状态和监听端口的输出。
  3. MySQL 用户权限查询结果(SELECT User, Host FROM mysql.user;)。
  4. 客户端到服务器的 telnetnc 测试结果。
http://www.lryc.cn/news/618522.html

相关文章:

  • vue+Django农产品推荐与价格预测系统、双推荐+机器学习预测+知识图谱
  • 跨界重构规则方法论
  • ubuntu24下keychorn键盘连接不了的改建页面的问题修复
  • 深入理解哈希结构及其应用
  • secureCRT ymodem协议连续传输文件速率下降
  • 鸿蒙开发教程实战案例源码分享-好看的SwitchButton
  • [SC]SystemC中的SC_FORK和SC_JOIN用法详细介绍
  • 17、CryptoMamba论文笔记
  • 42.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--扩展功能--集成网关--网关集成认证(一)
  • UNet改进(32):结合CNN局部建模与Transformer全局感知
  • Day45--动态规划--115. 不同的子序列,583. 两个字符串的删除操作,72. 编辑距离
  • DeepSeek-R1-0528 推理模型完整指南:领先开源推理模型的运行平台与选择建议
  • XC7A15T-1FTG256C Xilinx AMD Artix-7 FPGA
  • Linux中Apache与Web之虚拟主机配置指南
  • git config的配置全局或局部仓库的参数: local, global, system
  • 【unity实战】使用Splines+DOTween制作弯曲手牌和抽牌动画效果
  • 有限元方法中的数值技术:行列式、求逆、矩阵方程
  • 【bug 解决】串口输出字符乱码的问题
  • 【Datawhale夏令营】多模态RAG学习
  • 【Bug经验分享】由jsonObject-TypeReference引发的序列化问题
  • 【昇腾】关于Atlas 200I A2加速模块macro0配置3路PCIE+1路SATA在hboot2中的一个bug_20250812
  • STM32_bug总结(TIM定时中断进不去和只进1次)
  • 高性能web服务器Nginx
  • 【Android】【bug】Json解析错误Expected BEGIN_OBJECT but was STRING...
  • linux 开机进入initramfs无法开机
  • 跨设备开发不再难:HarmonyOS 分布式任务管理应用全解析
  • 《Fast Automatic White Balancing Method by Color Histogram Stretching》论文笔记
  • 让齿轮与斑马线共舞:汽车文化驿站及安全教育基地的展陈实践
  • 农业智慧大屏系统 - Flask + Vue实现
  • 安全合规5--终端安全检测和防御技术