gpt4 book ai didi

mysql - 1130 不允许主机 'amazon-ec2-ip' 连接到此 MySQL 服务器

转载 作者:可可西里 更新时间:2023-11-01 06:47:05 25 4
gpt4 key购买 nike

我在从另一台 EC2 服务器访问我的一台 Amazon EC2 服务器上的 mysql 数据库时遇到问题。我阅读了有关为从外部 IP 地址访问 mysql 提供适当权限的各种文章,以下是我遵循的步骤:

  1. 在我的主机 EC2 实例上打开端口 3306 以允许外部 Mysql 连接。
  2. 在文件/etc/mysql/my.cnf 中,将“绑定(bind)地址”从“127.0.0.1”更改为“0.0.0.0”。
  3. 使用root打开mysql,执行以下命令:将 . 上的所有权限授予 worker@'ec2-ip-address' IDENTIFIED BY 'password';

根据我阅读的所有博客/文章,这应该可以解决问题,但我不断收到以下错误:

1130  Host 'amazon-ec2-ip' is not allowed to connect to this MySQL server

我为 EC2 实例提供的 IP 地址是在您创建实例时生成的弹性 IP。为了验证问题是否特定于 EC2,我尝试对不同的“静态 ip 地址”执行命令“3”。现在,这对我有用(即我能够从该远程服务器登录到 mysql 主机),因此可以肯定上述步骤是正确的。

为什么 Amazon EC2 的 IP 地址不起作用?

最佳答案

发布此问题后,在我工作时,我意识到我什至无法 ping 到 EC2 服务器或远程登录到它。所以一些基本的东西一定是错的。终于有 friend 帮我解决了这个问题。正如我所预料的那样,这个问题是 EC2 特有的。

详情如下:

当我们创建一个 EC2 实例时,我们会得到一个外部 IP 地址,类似于:ec2-XX-XXX-XXX-XX.ap-southeast-1.compute.amazonaws.com

在 mysql 中设置权限时,我将权限授予上述 IP 地址,即:

GRANT ALL PRIVILEGES on . to worker@'ec2-XX-XXX-XXX-XX.ap-southeast1.compute.amazonaws.com' IDENTIFIED BY 'password';

当您尝试从另一个本地 EC2 实例与 EC2 实例通信时,这不起作用。为此,您需要提供 EC2 实例的“内部 ip 地址”,可以使用 ip 命令找到该地址:

ip:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 12:31:41:02:58:47 brd ff:ff:ff:ff:ff:ff
inet **XX.XX.XX.XXX/23** brd YY.YYY.YY.YYY scope global eth0
inet6 fe80::1031:41ff:fe02:5847/64 scope link
valid_lft forever preferred_lft forever

为了让事情正常工作,您需要授予 ip 地址 --"XX.XXX.XX.XXX/23"的权限,它应该可以工作。同样,在连接到“mysql”数据库时,提供给 mysql 命令的主机名也应该是主机 EC2 实例的“内部 ip 地址”。

关于mysql - 1130 不允许主机 'amazon-ec2-ip' 连接到此 MySQL 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11328150/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com