无法连接到“localhost”(10061)上的 MySQL 服务器,但可以通过 PHP 连接

无法连接到“localhost”(10061)上的 MySQL 服务器,但可以通过 PHP 连接

在我的 Windows XP 开发机器上,WAMP 2.2 提供 Apache 2.2.21、MySQL 5.5.16 和 PHP 5.3.8,我可以通过 phpMyAdmin 或任何本地托管的 PHP 脚本使用类似“的 DNS 连接和管理我的数据库mysql:host=localhost;数据库名称=kwamjing

当我尝试通过 HeidiSQL 或 MySQL Query Browser 等管理工具连接到 MySQL 时,我得到了

Error 2003 Can't connect to MySQL server on 'localhost' (10061)

防火墙可以阻止 HeidiSQL 访问 127.0.0.1:3306 但不能阻止 PHP 吗?

更新

通过 netstat -an 查看我的活动连接,我只看到 3306 上的 ipv6 环回监听

Active Connections

  Proto  Local Address          Foreign Address        State
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING
  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING
  TCP    0.0.0.0:2869           0.0.0.0:0              LISTENING
  TCP    127.0.0.1:80           0.0.0.0:0              LISTENING
  TCP    127.0.0.1:1025         0.0.0.0:0              LISTENING
  TCP    127.0.0.1:2215         127.0.0.1:2216         ESTABLISHED
  TCP    127.0.0.1:2216         127.0.0.1:2215         ESTABLISHED
  TCP    127.0.0.1:2217         127.0.0.1:2218         ESTABLISHED
  TCP    127.0.0.1:2218         127.0.0.1:2217         ESTABLISHED
  TCP    127.0.0.1:5152         0.0.0.0:0              LISTENING
  TCP    192.168.0.103:139      0.0.0.0:0              LISTENING
  TCP    192.168.0.103:2869     192.168.0.1:4530       CLOSE_WAIT
  TCP    192.168.0.103:2869     192.168.0.1:4532       CLOSE_WAIT
  TCP    [::]:135               [::]:0                 LISTENING       0
  TCP    [::]:2869              [::]:0                 LISTENING       0
  TCP    [::]:3306              [::]:0                 LISTENING       0

答案1

由于您只在 ipv6 上监听,php 一定已经解决了这个问题并且正在建立 ipv6 连接。

HeidiSQL 可能不支持 ipv6,并尝试在 ipv4 上连接 mysql,但失败了。如果您将mysqld 部分bind-address中的my.cnf

bind-address=127.0.0.1

它应该可以修复它。

答案2

是的,检查您的 Windows 防火墙,确保它没有阻止您的管理工具的访问。

相关内容