Mysql通信b / w两个亚马逊实例

时间:2014-06-05 11:42:05

标签: mysql ssh amazon-ec2 federated-storage-engine

我有客户端 - 服务器应用程序,其中服务器需要从所有客户端节点读取数据。我的所有节点+服务器都在亚马逊实例上。我想不出更好的方法来设置客户端与服务器通信。我目前有两种选择:

a)ssh隧道

b)mysql联合表/引擎

我已经成功设置了ssh隧道,但我正在寻找基于联邦引擎的解决方案。

我已经启用了双方的联合引擎,但是当我尝试连接失败时。问题是 如何设置联合引擎以相互通信以及如何与mysql ssl相关。我们是否需要启用和设置mysql ssl。

我的下载方式如下:

客户端

create database FED_remote_db;
use FED_remote_db;
create table test_data(id int(11) auto_increment primary key, name varchar(20) , dated timestamp);
create user 'fed_user'@'localhost'   identified by 'somepassword';
grant select on FED_remote_db.*  to  'fed_user'@'localhost' identified by 'somepassword';
flush privileges;

服务器

create database FED_server_db;
use FED_server_db;
create server fed_con foreign data wrapper mysql options(user 'fed_user',password 'somepassword',host 'client-ip-address',port 3307,database 'FED_remote_db');

create table test_data(id int(11) auto_increment primary key, name varchar(20) , dated timestamp) 
 ENGINE=FEDERATED 
 connection 'fed_chml/test_data';

在服务器端测试

use FED_server_db;
select * from  test_data;
ERROR 1429 (HY000): Unable to connect to foreign data source: Can't connect to MySQL server on 'client-ip-address' (110)

* client-ip-address是实际的IP地址

我是否需要在服务器/客户端启用某个端口或更改mysql配置?

如果我有ssh访问客户端如何帮助联邦单位沟通?

1 个答案:

答案 0 :(得分:0)

大多数情况下,如果您在EC2中的两个实例之间存在通信问题,则安全组存在问题。我建议将两台计算机放在同一个安全组中,并确保安全组添加到自身。

另外,我会研究一下mysql联盟是否需要除了众所周知的客户端端口以外的额外端口。