从 EC2 上的不同实例访问 mysql DB

从 EC2 上的不同实例访问 mysql DB

我在 EC2 服务器中有 2 个实例,一个实例具有 mysql DB 及其存储的内容,另一个实例用于访问存储在第一个实例中的数据。

我需要创建一个具有存储在数据库中的只读访问权限的用户。

所以

  1. CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';

    grant select on DBname.* to 'chowzter'@'localhost';

错误

ERROR 1130 (HY000): Host 'ip-xx-xx-xxx-xxx.ec2.internal' is not allowed to connect to this MySQL server

2。CREATE USER 'username'@'ec2-xx-xx-xx-xxx.compute-1.amazonaws.com' IDENTIFIED BY 'password'

grant select on DBname.* to 'username'@'ec2-xx-xx-xxx-xxx.compute-1.amazonaws.com';

这次使用的ip地址是second instance通过命令获取的内部IP。

ip a

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 -hxx.xx.xxx.xxx -uusername -ppassword

错误

ERROR 1045 (28000): Access denied for user 'username'@'ip-xx-xx-xxx-xxx.ec2.internal' (using password: YES)

知道如何解决吗?

答案1

您还需要检查第一个实例的安全组。您可以从第二个实例 ssh 进入第一个实例吗?

您的安全组设置中 MySQL 端口是否开放?

那么为什么不使用打包服务RDS(MySQL)呢?

答案2

终于解决了。

首先我使用 创建了一个用户%

 CREATE USER 'name'@'%' IDENTIFIED BY 'password';

然后您可以授予该用户权限。

grant select on DBname.* to 'name'@'%';

mysql -h xx.xx.xxx.xxx -u user -p

此处的 IP 地址是第一个实例

这赋予了我以只读模式从第二个实例访问数据库的权限。

答案3

使用以下虚拟名称:

源 MySQL = ec2-source.compute-1.amazonaws.comip-source.ec2.internal
需要访问的外部 MySQL = ec2-external.compute-1.amazonaws.comip-external.ec2.internal

要创建一个可以以只读权限从外部访问源的用户,同时限制对外部计算机 IP 的访问,请在您的来源MySQL的:

CREATE USER 'username'@'ip-external.ec2.internal' IDENTIFIED BY 'password';
GRANT SELECT ON DBname.* TO 'username'@'ip-external.ec2.internal';
FLUSH PRIVILEGES;

您现在可以在外部的机器访问只读源数据库:

mysql -u username -p -h ec2-source.compute-1.amazonaws.com

相关内容