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

当连接到 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 开关、localhost、127.0.0.1 或内部 ip 地址时,它都会失败,并出现错误:错误 1045(28000):拒绝用户“myuser”@“localhost”访问(使用密码:是)

我尝试了本地 IP,但没有用,还尝试了字符串“ip-xx.xx.xx.xxx”,也没有用。

我明显做错了,我该怎么办?

答案1

可以使用 找到监听(TCP)端口sudo netstat -tlnp

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

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

看起来像一半错误信息,前半部分大概是这样的ERROR 1045 (28000): Access denied for user,最后一部分是这样的(using password: NO)

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

  1. MySQL跑步和监听该 IP 地址和默认端口。
  2. 您使用的用户名或密码有误。也可能两者都有误。

如果您尚未登录或更改 MySQL 的密码,则默认为root无密码用户。请关闭此-p选项,或者当系统要求您输入密码时,直接点击Enter

相关内容