我无法找出安装在AWS T2微服务器上的MySQL数据库hostname
。
我可以通过phpmyadmin连接。通过PHP代码连接localhost
也可以。
然而,无法找到hostname
或ip来连接其他服务器上托管的服务(localhost
无法选择)
尝试按照
运行SELECT variable_value FROM global_variables WHERE variable_name = 'hostname'
但输出为ip-172-31-23-11
。当我尝试连接时,这不起作为hostname
。
答案 0 :(得分:2)
SELECT variable_value FROM global_variables WHERE variable_name = 'hostname'
的输出显示非完全限定的私人DNS名称。
从同一个VPC连接到此实例应该没问题,但如果您需要从VPC外部连接,那么您应该使用公共DNS。与私有DNS一样,它在实例详细信息(以及其他地方)下的EC2仪表板中显示。
举个例子:
然后,您还需要考虑网络控制,例如VPC ACL和安全组。确保实例的安全组允许通过3306(默认MySQL端口)从原始IP进行访问。
您还需要检查/etc/my.cnf中的bind-address
是否允许特定来自某些地址的连接以及localhost / 127.0.0.1,或者只是删除或注释掉该行以允许MySQL听取所有传入的流量。
答案 1 :(得分:1)
如果您尝试连接到另一台服务器上的数据库的应用程序,则需要获取公共DNS,公共IP地址,或在DNS(Route53)中创建指向“数据库”的条目。 example.com“进入您的公共IP / DNS名称。然后,您可以使用其中一个作为应用程序中的连接字符串。
depending on settings, you may also have to follow some of the instructions here
您可能需要绑定mysql以侦听主机网络接口以获得外部连接。
我建议使用telnet来解决这个问题。如果您无法连接(通过命令:“telnet 54.4.54.4 5432”(其中54.4.54.4是您的公共IP / DNS / route53输入主机名),那么您还需要检查您的安全组并确保端口5432是打开您尝试远程登录的连接。