2017-04-10 96 views
1

我在運行AWS EC2實例(3個數據節點和1個管理節點,運行Ubuntu最新版本的t2.micro上)上運行我的MySQL羣集時遇到問題。我跟着這個教程(與MySQL集羣7.5.5的更新版本):https://stansantiago.wordpress.com/2012/01/04/installing-mysql-cluster-on-ec2/數據節點無法連接到MySQL羣集

my.cnf文件,我有以下代碼:

[mysqld] 
ndbcluster 
datadir=/opt/mysqlcluster/deploy/mysqld_data 
basedir=/opt/mysqlcluster/home/mysqlc 
port=3306 

config.ini文件,我有這樣的代碼:

[ndb_mgmd] 
hostname=<private DNS of master> 
datadir=/opt/mysqlcluster/deploy/ndb_data 
nodeid=1 

[ndbd default] 
noofreplicas=3 
datadir=/opt/mysqlcluster/deploy/ndb_data 

[ndbd] 
hostname=<private DNS of slave 1> 
nodeid=3 

[ndbd] 
hostname=<private DNS of slave 2> 
nodeid=4 

[ndbd] 
hostname=<private DNS of slave 3> 
nodeid=5 

[mysqld] 
nodeid=50 

然後,我開始管理節點是這樣的:

ndb_mgmd -f /opt/mysqlcluster/deploy/conf/config.ini --initial --configdir=/opt/mysqlcluster/deploy/conf 

一切似乎都很好,我沒有顯示錯誤。

然而,當我嘗試到從連接到羣集,使用此命令:

​​

它失敗,此錯誤代碼:

Unable to connect with connect string: nodeid=0,<private DNS of master>:1186 

我試着命令ndb_mgm -e show看什麼正在進行:

Connected to Management Server at: localhost:1186 
Cluster Configuration 
--------------------- 
[ndbd(NDB)] 3 node(s) 
id=3 (not connected, accepting connect from <private DNS of slave 1>) 
id=4 (not connected, accepting connect from <private DNS of slave 2>) 
id=5 (not connected, accepting connect from <private DNS of slave 2>) 

[ndb_mgmd(MGM)] 1 node(s) 
id=1 @<private IP address of master> (mysql-5.7.17 ndb-7.5.5) 

[mysqld(API)] 1 node(s) 
id=50 (not connected, accepting connect from any host) 

看起來管理節點開始於lo calhost,這是爲什麼它失敗? 我不明白爲什麼我無法將數據節點連接到集羣,因爲配置文件看起來不錯。

如果有人有任何建議,將不勝感激。謝謝 !

回答

1

在獲得MySQL集羣對EC2工作的問題是確保 所有虛擬機可以在適當的端口進行通信。

這是通過添加一個所有虛擬機都屬於的安全組來處理的。 我創建了一個名爲NDB集羣安全組,這有規則 入站和出站TCP流量以下端口進行通信: 1186(NDB管理服務器端口),3306(MySQL服務器端口),3316(額外MySQL服務器端口) ,8081(MySQL羣集自動安裝程序端口),11860(MySQL羣集數據節點端口),33060(MySQLX端口)。

我添加了一行中的config.ini到NDBD DEFAULT部 ServerPort = 11860 這意味着,所有的節點連接到使用此 端口號的數據節點。

所有虛擬機使用這個安全組的東西都像一個魅力, 當沒有建立所有節點之間的溝通,事情並沒有工作 很明顯。

+0

是的,當然!該錯誤消息我感到困惑,但是這是一種明顯的...謝謝。 –