2012-02-21 41 views
0

这里是我的情况:不能在某些情况下访问MySQL服务器

  • 我有我的服务器mysqld的运行状态。
  • 远程登录本地主机3306可以访问
  • 的telnet 127.0.0.1 3306可以访问
  • 的telnet my_host_name 3306不给接入
  • 的telnet ip_of_my_host_name 3306不给接入
  • 我检查端口:3306打开。我的防火墙不会阻止这个端口

在mysql日志文件中,我有一条关于“未来”日志序列的消息。

问题与此消息之间是否存在关系?

我的数据库使用Innodb。

+0

你使用什么操作系统? – 2012-02-21 18:38:45

+0

你的my.cnf中有“bind_address 127.0.0.1”吗? – 2012-02-21 18:39:44

+0

对不起:我忘了这些基本信息...我在windows server 2003上运行,mysql版本为5.2 bind ... my.ini中不存在 my.ini中不存在skip-networking – Bertaud 2012-02-21 18:50:44

回答

0

如果您刚刚安装了MySQL,默认情况下禁用远程访问。如果是这种情况,您需要编辑配置以允许它并重新启动mysqld。关于如何操作,有几个指令集,such as this one

+0

我的IP不是固定的! – Bertaud 2012-02-21 18:55:11

+0

在这种情况下,绑定到任何IP:bind-address = 0.0.0.0,然后远程登录您的公共IP,端口3306以验证mysqld服务器是否按预期收听。 – jap1968 2012-02-21 21:59:07

+0

我试过但不是更好:-( – Bertaud 2012-02-21 22:35:57

1

你的问题似乎是与mysql守护进程的绑定地址相关的东西。

你可以看看here,以获取有关绑定到多个地址(本地主机公共IP地址)的更多信息。

+0

OS = windows server 2003 – Bertaud 2012-02-21 18:53:07

0

由于您可以连接到本地主机,因此我们知道您已配置绑定地址设置。

看着你的my.cnf(或my.ini文件)文件以下行:

bind-address = 127.0.0.1 

上面一行,您可以只连接到本地地址。 MySQL将自身绑定到回送IP,而没有其他。

为了能够连接到的所有IP地址的机器上(绑定到所有地址),包括本地地址,更改配置以执行以下操作:

bind-address = 0.0.0.0 

或者,由于0.0.0.0是默认的,你可以这样评论它:

#bind-address = 0.0.0.0 

然后重新启动MySQL服务器。

您的错误信息与此问题无关。

+0

my.ini中不存在此行 – Bertaud 2012-02-21 19:09:32

+0

在您的计算机上搜索所有my.ini和my.cnf以及启动命令行选项如果'bind-address '不是问题,那么这不是MySQL的问题。问题在于其他地方。 – 2012-02-21 19:15:49

+0

mysqld是以一个路径开始的一个my.ini文件。 问题在于“别处”! – Bertaud 2012-02-21 20:43:28

相关问题