我在 Amazon EC2 中有一个 MySql 服务器实例。在my.cnf
如果我写了bind-address = 127.0.0.1
,服务器就可以启动。
但如果我写bind-address = SERVER_IP
,它会出现绑定错误。
那么要远程连接该服务器(因为我想在本地工作区中使用它进行开发),我该怎么做?
答案1
您可以绑定到地址 0.0.0.0。这会使 MySQL 监听每个 IP。
但请记住,你可能必须授予你连接的 IP 使用权限,例如
GRANT USAGE ON databse.table TO 'username'@'host';
附注:你可以使用亚马逊关系数据库服务如果你只想在云中拥有一个 MySQL 数据库
答案2
我猜这SERVER_IP
是您实例的公共(弹性?)IP。这行不通,因为从机器的角度来看,您只能在 10/8 中获得一个地址,并且该私有 IP 地址由 Amazon 网络进行 NAT 转换为您熟悉和喜欢的公共 IP。
您必须设置bind-address = 10.x.y.z
(或0.0.0.0
,如 Christopher Perrin 所建议的)才能使其工作。但请记住,向世界开放的数据库服务器是一个充满机会的诱人目标……
答案3
您应该做的是在您和数据库实例之间创建一个安全链接,例如通过 OpenVPN 或类似方式。OpenVPN 可能有点过头了,但它是最好的。这样您就可以绑定到它的 tun0 接口,而不必担心被黑客入侵之类的小事。
答案4
只需将您当前的 IP 添加到您的服务器正在使用的安全组。
- 得http://ping.eu
- 复制您的 IP 地址并将其添加到安全组(通常是默认的)。类似这样的内容:xxx.xxx.xxx.xxx/32