首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL远程连接:公共IP地址与私有IP地址

问MySQL远程连接:公共IP地址与私有IP地址
EN

Database Administration用户
提问于 2014-07-02 23:04:25
回答 2查看 4.6K关注 0票数 3

我刚刚经历了让MySQL接受远程登录的痛苦。是的,我必须创建表单''@'%‘的用户,并且我这样做了。是的,我不得不全身心投入。给我的新‘%’用户,然后刷新权限,我就这么做了。是的,我必须在服务器上打开端口3306,而且我这样做了。但是,试图通过HeidiSQL访问HeidiSQL,我仍然没有任何运气。

直截了当地说,我的斗争是与绑定地址。我在AWS服务器实例上运行Ubuntu,所以我有一个公共IP地址和一个私有IP地址。当然,始终存在MySQL默认IP地址127.0.0.1。但是,默认设置不允许我进行任何远程连接,所以我想我应该尝试使用公共IP。但在这种情况下,MySQL不会启动。最后,我尝试使用私有IP地址作为绑定地址,一切都就绪了:我能够停止并重新启动MySQL,并且能够从HeidiSQL连接。

但我完全糊涂了。HeidiSQL通过它的公共IP地址来寻址此服务器。但是MySQL拒绝绑定到公共IP地址!(就像我说的,当我尝试的时候,MySQL甚至都不会开始。)MySQL的绑定地址是私有IP地址。这里发生了什么事?为什么,为了获得远程连接,我需要HeidiSQL目标端口3306在公共IP地址,但MySQL绑定到私有IP地址?

EN

回答 2

Database Administration用户

发布于 2014-07-08 02:54:47

这里的解释很简单:您不能将侦听套接字绑定到机器的IP堆栈不知道的IP地址。

在AWS (无论是EC2经典还是EC2/VPC)中,就像现在许多网络环境中一样,您的外部IP没有在您的计算机中配置--它通过外部设备(路由器、防火墙)通过NAT (网络地址转换)映射到您机器的私有IP。

您可以确认您的服务器本身不知道外部IP:

代码语言:javascript
复制
 $ ifconfig

当然,最简单的解决方案是绑定到0.0.0.0,除非您有特定的理由不这样做。

http://en.m.wikipedia.org/wiki/Network_地址_翻译

票数 4
EN

Database Administration用户

发布于 2015-09-20 23:25:56

试试这个:

MySQL服务器的/etc/host文件必须包含服务器IP地址,因此请验证一次。

$ sudo cat /etc/主机

票数 -1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/69586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档