云计算百科
云计算领域专业知识百科平台

连接本地和服务器 MySQL 时出现 2003-Can’t connect to MySQL server on ‘localhost’(10061) 错误,如何解决?

连接本地 MySQL 时出现 2003-Can’t connect to MySQL server on ‘localhost’(10061) 错误,如何解决?

在日常的 MySQL 开发或运维中,经常会遇到连接 MySQL 数据库时出现 2003 – Can't connect to MySQL server on 'localhost' (10061) 错误。这类问题不仅仅出现在特定操作系统或 MySQL 版本下,也可能由多种因素导致。为了帮助开发者或运维人员快速解决这个问题,我们将从不同的操作系统环境、MySQL 版本、配置问题等多个维度进行详细分析,并列出可能的解决方案,并给出对应的解决方案优先级。

一、错误原因分析

首先,我们需要了解该错误的原因。2003 – Can't connect to MySQL server on 'localhost' (10061) 错误通常表明客户端无法在指定的端口上与 MySQL 服务建立连接,可能的原因包括:

  • MySQL 服务没有启动或崩溃。

  • 防火墙阻止了端口访问。

  • MySQL 配置文件中设置了错误的绑定地址(bind-address)。

  • 客户端和 MySQL 服务器之间的网络问题。

  • MySQL 端口被其他程序占用。

  • 服务器上的某些网络设置或安全策略限制了连接。 在这里插入图片描述

    文章目录

      • 一、错误原因分析
    • 作者简介
      • 猫头虎是谁?
      • 作者名片 ✍️
      • 加入我们AI共创团队 🌐
      • 加入猫头虎的共创圈,一起探索编程世界的无限可能! 🚀
    • 正文
      • 二、MySQL 版本分析
        • 1. MySQL 5.7
          • 解决方案:
          • 解决方案权重:🌟🌟🌟
        • 2. MySQL 8
          • 解决方案:
          • 解决方案权重:🌟🌟🌟🌟
      • 三、操作系统分析(详细版)
        • 1. Windows 10
          • 解决方案:
          • 解决方案权重:🌟🌟🌟
        • 2. Windows 11
          • 解决方案:
          • 解决方案权重:🌟🌟
        • 3. Linux(例如 Ubuntu)
          • 解决方案:
          • 解决方案权重:🌟🌟🌟🌟🌟
        • 4. macOS
          • 解决方案:
          • 解决方案权重:🌟🌟🌟
        • 5. Ubuntu(详细版)
          • 解决方案:
          • 解决方案权重:🌟🌟🌟🌟
        • 总结
    • 粉丝福利
        • 联系我与版权声明 📩

作者简介

猫头虎是谁?

大家好,我是 猫头虎,猫头虎技术团队创始人,也被大家称为猫哥。我目前是COC北京城市开发者社区主理人COC西安城市开发者社区主理人,以及云原生开发者社区主理人,在多个技术领域如云原生、前端、后端、运维和AI都具备丰富经验。

我的博客内容涵盖广泛,主要分享技术教程、Bug解决方案、开发工具使用方法、前沿科技资讯、产品评测、产品使用体验,以及产品优缺点分析、横向对比、技术沙龙参会体验等。我的分享聚焦于云服务产品评测、AI产品对比、开发板性能测试和技术报告

目前,我活跃在CSDN、51CTO、腾讯云、阿里云开发者社区、知乎、微信公众号、视频号、抖音、B站、小红书等平台,全网粉丝已超过30万。我所有平台的IP名称统一为猫头虎猫头虎技术团队

我希望通过我的分享,帮助大家更好地掌握和使用各种技术产品,提升开发效率与体验。


作者名片 ✍️

  • 博主:猫头虎
  • 全网搜索关键词:猫头虎
  • 作者微信号:Libin9iOak
  • 作者公众号:猫头虎技术团队
  • 更新日期:2025年03月21日
  • 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能!

加入我们AI共创团队 🌐

  • 猫头虎AI共创社群矩阵列表:
    • 点我进入共创社群矩阵入口
    • 点我进入新矩阵备用链接入口

加入猫头虎的共创圈,一起探索编程世界的无限可能! 🚀

部分专栏链接:

🔗 精选专栏:

  • 《面试题大全》 — 面试准备的宝典!
  • 《IDEA开发秘籍》 — 提升你的IDEA技能!
  • 《100天精通鸿蒙》 — 从Web/安卓到鸿蒙大师!
  • 《100天精通Golang(基础入门篇)》 — 踏入Go语言世界的第一步!

猫头虎分享No bug

正文

二、MySQL 版本分析

1. MySQL 5.7

MySQL 5.7 是一个比较稳定的版本,但在安装和配置过程中,如果没有正确配置某些选项,可能会遇到 2003 错误。

解决方案:
  • 检查 MySQL 服务是否启动:使用以下命令查看 MySQL 服务是否正常运行:

    sudo service mysql status

    如果没有启动,请使用以下命令启动:

    sudo service mysql start

  • 检查 bind-address 设置:MySQL 5.7 默认可能将 bind-address 设置为 127.0.0.1,如果你的 MySQL 服务器配置文件(my.cnf 或 my.ini)中 bind-address 为 0.0.0.0 或正确设置为 localhost,确保它没有被错误配置为某个不正确的地址:

    bind-address = 127.0.0.1

  • 查看防火墙设置:检查防火墙是否阻止了 MySQL 的端口(默认为 3306):

    sudo ufw allow 3306

  • MySQL 用户权限:确保 MySQL 用户具有从 localhost 连接的权限。如果需要,可以使用以下命令授予权限:

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'password';

解决方案权重:🌟🌟🌟

2. MySQL 8

MySQL 8 引入了一些新特性和变化,例如改进的身份验证插件和更严格的安全设置,这可能会影响连接。

解决方案:
  • 检查身份验证插件:MySQL 8 默认使用 caching_sha2_password 身份验证插件,较旧的客户端可能不支持此插件。可以在 my.cnf 文件中将默认的身份验证插件更改为 mysql_native_password,以便支持旧客户端:

    default_authentication_plugin = mysql_native_password

  • 防火墙和端口检查:同 MySQL 5.7 的解决方法,确保防火墙未阻止 3306 端口。

  • 检查配置文件:确保 bind-address 设置正确,并且没有被不小心修改为 0.0.0.0。

    bind-address = 127.0.0.1

  • 检查用户权限:使用以下 SQL 语句来确保 MySQL 用户可以从本地连接:

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'password';

解决方案权重:🌟🌟🌟🌟

三、操作系统分析(详细版)

连接 MySQL 时出现 2003 – Can't connect to MySQL server on 'localhost' (10061) 错误,操作系统环境是一个重要的因素,不同操作系统可能会对 MySQL 服务的运行产生不同影响。我们将分别详细分析 Windows 10、Windows 11、Linux、macOS 和 Ubuntu 等常见操作系统的相关问题和解决方案。

1. Windows 10

在 Windows 10 上,MySQL 可能会因为服务未启动、防火墙阻挡、端口占用或权限问题等导致 2003 错误。下面我们将逐步解决这些问题。

解决方案:
  • 确认 MySQL 服务是否启动:

    在 Windows 上运行 MySQL 服务器通常是通过服务管理来控制的。使用以下命令检查 MySQL 服务是否正在运行:

  • 打开“任务管理器”,切换到“服务”标签,查看 MySQL 服务的状态。
  • 如果 MySQL 没有启动,可以手动启动它。打开命令提示符并输入:net start MySQL
  • 检查 MySQL 配置文件: 确保 MySQL 的配置文件 my.ini 中没有将 bind-address 错误配置为除 127.0.0.1 或 localhost 之外的其他地址。正确配置 bind-address 可以防止 MySQL 被外部网络访问:

    bind-address = 127.0.0.1

  • 检查防火墙设置:

    Windows 防火墙可能阻止了 MySQL 的默认端口 3306。可以在防火墙中创建规则允许 MySQL 端口的流量:

  • 打开控制面板 -> 系统和安全 -> Windows 防火墙 -> 高级设置 -> 入站规则。
  • 新建入站规则,选择端口,指定端口号 3306,并允许连接。
  • 检查 MySQL 用户权限:

    在 MySQL 中,用户权限的配置也可能导致连接失败。确保你使用的数据库用户拥有从 localhost 连接的权限:

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'password';
    FLUSH PRIVILEGES;

解决方案权重:🌟🌟🌟

2. Windows 11

与 Windows 10 相比,Windows 11 在网络安全和防火墙策略方面可能会有一些新的设置,导致 MySQL 无法正常启动或连接。

解决方案:
  • 禁用 Windows 防火墙:

    在排查网络连接问题时,暂时禁用防火墙是一个常见的排除法。可以通过以下命令禁用防火墙:

    netsh advfirewall set allprofiles state off

    但建议在确认问题后重新启用防火墙,并适当配置防火墙规则。

  • 检查服务启动状态:

    打开“任务管理器”,确认 MySQL 服务是否运行。如果 MySQL 没有运行,可以在命令行使用:

    net start MySQL

  • 更新 MySQL 配置文件:

    确保 MySQL 配置文件中的 bind-address 设置正确。可以通过如下设置强制 MySQL 绑定到 localhost:

    bind-address = 127.0.0.1

  • 查看 MySQL 错误日志:

    如果 MySQL 无法启动,查看 MySQL 错误日志获取更详细的错误信息,日志通常位于 C:\\ProgramData\\MySQL\\MySQL Server 8.0\\data\\ 目录下。

解决方案权重:🌟🌟

3. Linux(例如 Ubuntu)

Linux 系统上的 MySQL 服务和连接问题通常与用户权限、配置文件、服务状态以及防火墙设置等有关。我们将分别详细列举解决步骤。

解决方案:
  • 检查 MySQL 服务状态:

    在 Linux 系统上,MySQL 服务通常是通过 systemd 或 init.d 启动的。首先,检查 MySQL 服务是否正常运行:

    sudo systemctl status mysql

    如果服务没有启动,可以使用以下命令启动:

    sudo systemctl start mysql

    若要让 MySQL 服务在系统启动时自动启动:

    sudo systemctl enable mysql

  • 检查 MySQL 配置文件:

    打开 MySQL 配置文件 /etc/mysql/my.cnf 或 /etc/mysql/mysql.conf.d/mysqld.cnf,确保 bind-address 设置为 127.0.0.1 或 localhost,以避免从外部访问:

    bind-address = 127.0.0.1

  • 检查防火墙设置:

    在 Ubuntu 中,默认的防火墙是 ufw。使用以下命令检查 MySQL 端口是否开放:

    sudo ufw status

    如果没有开放 3306 端口,执行以下命令来允许访问:

    sudo ufw allow 3306

    如果不使用 ufw,也可以使用 iptables 进行配置。

  • 检查 MySQL 错误日志:

    查看 MySQL 错误日志 /var/log/mysql/error.log 或 /var/log/mysql/mysql-error.log,确认是否有错误信息,以便进一步定位问题。

  • 查看系统资源限制:

    如果系统资源过于紧张(如内存或磁盘空间),也可能导致 MySQL 无法启动。通过以下命令查看系统资源状态:

    free -h # 查看内存
    df -h # 查看磁盘

解决方案权重:🌟🌟🌟🌟🌟

4. macOS

macOS 上的 MySQL 也可能遇到类似的问题,通常是由于 MySQL 服务未启动或防火墙设置不当。macOS 上的 MySQL 服务管理与 Linux 相似,因此我们可以按类似方式进行排查。

解决方案:
  • 启动 MySQL 服务:

    如果 MySQL 服务没有启动,可以使用以下命令启动它:

    sudo /usr/local/mysql/support-files/mysql.server start

  • 检查防火墙设置:

    macOS 使用 pf 防火墙,可以使用以下命令查看当前防火墙规则:

    sudo pfctl -sr

    如果需要,可以通过 pfctl 命令手动允许端口 3306 的流量。

  • 检查 MySQL 配置文件:

    打开 MySQL 配置文件,确保 bind-address 设置为 127.0.0.1:

    bind-address = 127.0.0.1

  • 检查系统日志:

    如果 MySQL 服务启动失败,查看系统日志文件 /var/log/system.log 以获取更多信息。

解决方案权重:🌟🌟🌟

5. Ubuntu(详细版)

Ubuntu 和 Linux 系统的配置和排查步骤非常类似,但 Ubuntu 提供了更便捷的包管理系统和服务管理工具,帮助开发者和管理员更轻松地处理 MySQL 服务的问题。

解决方案:
  • 检查 MySQL 服务:

    使用以下命令检查 MySQL 服务状态:

    sudo systemctl status mysql

    如果 MySQL 服务未启动,使用以下命令启动:

    sudo systemctl start mysql

    如果服务没有正常启动,可以查看 MySQL 错误日志 /var/log/mysql/error.log 以进一步调查。

  • 检查防火墙设置:

    默认情况下,Ubuntu 使用 ufw 来管理防火墙。可以通过以下命令确认 3306 端口是否开放:

    sudo ufw status

    如果没有开放 3306 端口,可以运行:

    sudo ufw allow 3306

  • 查看 MySQL 配置文件:

    确保 bind-address 设置为 127.0.0.1,而不是 0.0.0.0 或其他不适合本地连接的 IP 地址。

解决方案权重:🌟🌟🌟🌟

总结

通过对不同操作系统(Windows 10、Windows 11、Linux、macOS 和 Ubuntu)的详细分析,我们了解了 MySQL 连接问题可能的原因以及如何逐一解决。操作系统层面的配置和服务状态是解决 MySQL 2003 错误的关键所在,确保服务正常启动、配置文件正确、网络和防火墙设置得当是解决问题的主要步骤。希望这部分内容能帮助大家在不同的操作系统环境下高效解决问题。

猫头虎

粉丝福利


👉 更多信息:有任何疑问或者需要进一步探讨的内容,欢迎点击文末名片获取更多信息。我是猫头虎博主,期待与您的交流! 🦉💬 猫头虎


联系我与版权声明 📩

  • 联系方式:
    • 微信: Libin9iOak
    • 公众号: 猫头虎技术团队
  • 版权声明: 本文为原创文章,版权归作者所有。未经许可,禁止转载。更多内容请访问猫头虎的博客首页。

点击✨⬇️下方名片⬇️✨,加入猫头虎AI共创社群矩阵。一起探索科技的未来,共同成长。🚀

🔗 猫头虎抱团AI共创社群 |
🔗 Go语言VIP专栏 |
🔗 GitHub 代码仓库 |
🔗 Go生态洞察专栏

✨ 猫头虎精品博文

赞(0)
未经允许不得转载:网硕互联帮助中心 » 连接本地和服务器 MySQL 时出现 2003-Can’t connect to MySQL server on ‘localhost’(10061) 错误,如何解决?
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!