当在ec2上连接到mysql时,我应该使用什么?

我现在有问题连接到我的本地mysql服务器,但我需要能够连接到其他实例的MySQL的帮助。

背景:我有一个Java服务,安装在一个单一的实例,以及MySQL。 其他实例也将有这个需要连接到MySQL的Java服务。

目前我的/ etc / hostname显示:

ip-xx-xx-xx-xxx 

我应该用什么来连接? 我试图localhost只是为了看它是否可以连接,并没有工作。 我也尝试了本地IP,也没有工作。

如果我只是尝试连接到本地mysql这个工程:

 mysql -u root -p123 

但是这个失败了:

 mysql -h localhost -u root -p123 

(所以,每当我添加-h开关,本地主机,127.0.0.1或内部IP地址都失败,错误:错误1045(28000):访问拒绝用户myuser'@'localhost'(使用密码:是)

我只尝试了本地IP,那不起作用,string“ip-xx.xx.xx.xxx”,也没有工作。

我显然做错了什么,我该怎么办?

侦听(TCP)端口可以通过sudo netstat -tlnpfind。

名称而不是IP地址的原因是EC2提供反向DNS查找,并且您的IP地址parsing为该名称。 MySQL可以在身份validation中使用反向DNS查找,但不build议这样做,因为任何拥有IP地址的人都可以将反向查找设置为任何他们喜欢的内容,从而绕过源代码保护。

这个错误: 'root'@'ip-xx-xx-xx-xxx.ec2.internal'

这看起来像是一半的错误消息,上半年可能说了一些像ERROR 1045 (28000): Access denied for user和最后一部分说(using password: NO)

错误消息告诉我们两件事:

  1. MySQL 正在运行并正在侦听该IP地址和默认端口。
  2. 您使用的用户名或密码是错误的。 可能两者。

如果您还没有login或更改MySQL的密码,则默认为没有密码的root用户。 离开-p选项,或者当它询问您的密码时,只需按Enter即可