更改绑定地址后 MySQL 服务器将无法运行

更改绑定地址后 MySQL 服务器将无法运行

为了允许外部连接,我进行了编辑,将默认值/etc/mysql/my.cnf更改为。但更改后,mysql 服务无法启动。当我检查 mysql 错误日志时,它有以下内容:-bind-address127.0.0.154.200.xx.xx

131030 12:27:53 [Note] Server hostname (bind-address): '54.200.xx.xx'; port: 3306
131030 12:27:53 [Note]   - '54.200.xx.xx' resolves to '54.200.xx.xx';
131030 12:27:53 [Note] Server socket created on IP: '54.200.xx.xx'.
131030 12:27:53 [ERROR] Can't start server: Bind on TCP/IP port: Cannot assign requested address
131030 12:27:53 [ERROR] Do you already have another mysqld server running on port: 3306 ?
131030 12:27:53 [ERROR] Aborting

该服务器位于 Amazon EC2 上,运行 Ubuntu 12.04 LTS。知道问题是什么吗?

ubuntu@ip-172-31-xx-xxx:~$ ifconfig
eth0      Link encap:Ethernet  HWaddr 12:ad:52:a1:9b:a9  
          inet addr:172.31.xx.xxx  Bcast:172.31.xx.xxx  Mask:255.255.240.0
          inet6 addr: fe80::10ad:52ff:fea1:9ba9/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1014 errors:0 dropped:0 overruns:0 frame:0
          TX packets:749 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:87102 (87.1 KB)  TX bytes:138261 (138.2 KB)
          Interrupt:25 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:152 errors:0 dropped:0 overruns:0 frame:0
          TX packets:152 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:11740 (11.7 KB)  TX bytes:11740 (11.7 KB)

答案1

如果某个 IP 不在您的系统中,您就无法监听该 IP。这很清楚,不是吗?

答案2

** 抱歉 - 刚看到您说您在 EC2 上 - 您仍然需要将您的 MySQL 实例绑定到 0.0.0.0,然后根据需要进行任何适当的配置以打开端口 3306(如果默认情况下不是仅将所有流量发送到您的 LAN IP)**

看起来您位于 LAN 上,前面有一个 NAT 网关。您无法将 mysql 直接绑定到您的外部 IP 地址,因为这实际上不是您系统上可用的 IP 地址。

如果这确实是您想要做的(请考虑仅向外界开放直接访问权限的通常安全影响),您将需要:

  • 将 MySQL 绑定到 0.0.0.0(或者您的 LAN IP,如果您不想让它也监听 127.0.0.1,这不太可能)
  • 从具有外部 IP 的设备(针对 TCP 端口 3306)到 Linux 机器的 LAN IP 创建端口转发/防火墙规则。

如果您不知道如何操作,网上有很多关于设置端口转发的信息。如果您无法访问 NAT 路由器/防火墙,而控制它的人又不会为您做这件事,那么您就必须想出另一种方法来满足您的需求。

相关内容