我试图从一个Amazon EC2实例连接到另一个时使用主机受限制的MySQL用户。 我想为他们的dns函数使用弹性IP地址,但是您可能会忽略此问题中的Amazon EC2引用。
我想我的问题是如何定义客户端的DNS客户端的DNS名称时,作为用户连接到MySQL?
如果我有问题,我很抱歉。 也许它是更通用的 – 如何定义本地机器的主机名以用于任何传出连接?
问题是客户端应用程序有两个DNS名称,但我需要使用其他。 细节是:
Public db.fixedip.amazonaws.com app.fixedip.amazonaws.com ------------------------------------------------------------------------------- Internal db.randomdns.ec2.internal app.randomdns.ec2.internal Actual machine instance MySQL on Linux App on Windows 2003 'user'@'app.fixedip.amazonaws.com'
从应用程序
mysql -uuser -p -hdb.fixedip.amazonaws.com ERROR 1130 (HY000): Host 'app.randomdns.ec2.internal' is not allowed to connect to this MySQL server
db.fixedip.amazonaws.com方便地parsing到内部IP地址(可以改变),但MySQL客户端不被识别为它的非随机app.fixedip.amazonaws.com public dns名称。
这似乎没有工作:)
mysql [email protected] -p -hdb.fixedip.amazonaws.com
更新:当前的答案重新定义了这个问题 – 不要打扰在MySQL的主机,并使用替代主机的限制。 我会接受,除非别人想对原来的问题发表评论
在EC2中实现安全的MySQL数据库访问的标准方法是使用EC2安全组。 只允许连接到特定安全组中EC2实例的MySQL数据库服务器端口(3306),例如“dbclient”。 将任何数据库客户端EC2实例放入“dbclient”安全组中。
configurationMySQL本身以允许来自任何主机(“%”)的经过身份validation的用户进行连接。
这就解决了必须跟踪所有EC2实例的内部IP地址的问题,尤其是当您停止并启动实例时,即使分配了弹性IP地址,这些地址也会发生变化。
以下是我写的一篇文章,可以帮助您使用基于服务器的弹性IP地址DNS名称的内部IP地址从数据库客户端连接到数据库服务器:
使用弹性IP识别Amazon EC2上的内部实例
http://alestic.com/2009/06/ec2-elastic-ip-internal
这有助于解决数据库服务器IP地址在停止,启动或更换时发生更改的问题。