ubuntu下mysql_cluster集羣搭建

1、官網下載對應版本mysql_cluster安裝包

https://dev.mysql.com/downloads/cluster/

2、搭建環境 
搭建過程中,用三臺計算機來實現MySQL-Cluster環境的配置,具體環境如下:

管理節點(MGM)服務器:192.168.131.130 主機名:jwing nodeid=1
數據節點1(NDB ):192.168.131.131 nodeid=2
數據節點2(NDB):192.168.131.132 nodeid=3
SQL節點1:192.168.131.131 nodeid=4
SQL節點2:192.168.131.132 nodeid=5
3、如果之前安裝過mysql-server,在進行此次實驗之前,需要將mysql-server卸載,執行以下指令卸載mysql

sudo apt-get autoremove –purge mysql-server
sudo apt-get remove mysql-server
sudo apt-get autoremove mysql-server
sudo apt-get remove mysql-common

管理節點配置

這裏將主機ip爲192.168.131.130的服務器作爲管理節點,進行下面的配置:

// 將下載好的安裝包解壓到自己選擇的目錄下,並修改個短一點的名字
cd /usr/local
tar -zxvf /home/jwing/Downloads/mysql-cluster-gpl-7.3.18-linux-glibc2.12-x86_64.tar.gz
mv mysql-cluster-gpl-7.3.18-linux-glibc2.12-x86_64 mysql_cluster
// 將管理命令(ndb_mgm,ndb_mgmd)複製到/usr/local/bin下
cd mysql_cluster/bin
cp ndb_mgm* /usr/local/bin
// 新建管理文件並配置
mkdir /var/lib/mysql-cluster
cd /var/lib/mysql-cluster
vi config.ini

config.ini文件內容:

# Options affecting ndbd processes on all data nodes:
[NDBD DEFAULT]    
NoOfReplicas=2
DataMemory=80M
IndexMemory=18M

# TCP/IP options:
[TCP DEFAULT]    
#portnumber=2202

# Management process options:
[NDB_MGMD]          
nodeid=1          
HostName=192.168.131.130
DataDir=/var/lib/mysql-cluster/

# Options for data node :
[NDBD]                          
nodeid=2
HostName=192.168.131.131
DataDir=/usr/local/mysql_cluster/data/

# Options for data node :
[NDBD]  
nodeid=3                     
HostName=192.168.131.132
DataDir=/usr/local/mysql_cluster/data/

# SQL node options:
[MYSQLD] 
nodeid=4                      
HostName=192.168.131.131
[MYSQLD]
nodeid=5
HostName=192.168.131.132

 

數據節點與sql節點配置
在192.168.131.131主機與192.168.131.132主機上均進行以下配置 
1、檢查是否已有mysql用戶與mysql組,若不存在,手動新增 
查看:

cat /etc/passwd
cat /etc/group
新增:

groupadd mysql
useradd -g mysql mysql
2、解壓
// 將下載好的安裝包解壓到自己選擇的目錄下,並修改個短一點的名字
cd /usr/local
tar -zxvf /home/jwing/Downloads/mysql-cluster-gpl-7.3.18-linux-glibc2.12-x86_64.tar.gz
mv mysql-cluster-gpl-7.3.18-linux-glibc2.12-x86_64.tar.gz mysql_cluster
// 將ndbd命令複製到/usr/local/bin下
cd mysql_cluster/bin
cp ndbd /usr/local/bin

 

3、創建系統數據庫:

 

cd /usr/local/mysql_cluster

apt-get install libaio1 libaio-dev

scripts/mysql_install_db --user=mysql

(報錯提示主機名不匹配,可能是壓縮包下載的版本(確認操作系統是32位還是64位)問題。若是提示文件夾不存在,可能是壓縮包版本(有些版本沒有scripts文件夾)問題或是因爲之前mysql沒有完全卸載。或者在bin目錄底下)

4、設置權限

chown -R root .

chown -R mysql data

chgrp -R mysql .

5、設置自啓動

// 將MySQL啓動腳本拷貝恰當的目錄下
cp support-files/mysql.server /etc/init.d 
// 使之成爲可執行的腳本
chmod +x /etc/init.d/mysql.server
// 設置它能在啓動操作系統時啓動
apt-get install sysv-rc-conf
sysv-rc-conf mysql.server on

6、配置my.cnf 

數據節點與sql節點可在同一個文件中配置,配置文件的默認位置爲/etc/my.cnf

// 新建並編輯my.cnf
vi /etc/my.cnf

6、配置my.cnf 
數據節點與sql節點可在同一個文件中配置,配置文件的默認位置爲/etc/my.cnf

// 新建並編輯my.cnf
vi /etc/my.cnf

my.cnf內容:

[MYSQLD]
ndbcluster           
ndb-connectstring=192.168.131.130  

#管理節點ip 

[MYSQL_CLUSTER] 
ndb-connectstring=192.168.131.130

#管理節點ip

7、配置mysql環境變量

vi /etc/profile
source /etc/profile

在文件最下方配置內容如下:

export MYSQL_HOME=/usr/local/mysql_cluster
PATH=${MYSQL_HOME}/bin:$PATH
export PATH

運行
1、管理節點:

配置結束後運行ndb_mgmd --ndb-nodeid=1 --initial --configdir=/var/lib/mysql-cluster/ -f /var/lib/mysql-cluster/config.ini。失敗的情況請用命令ndb_mgmd --help查看參數提示。確保配置文件路徑與配置文件內容是正確的。 
ndb_mgm可進入管理模式,再輸入show可查看當前各節點狀態: 

è¿éåå¾çæè¿°

2、數據節點:

 

運行ndbd --initial(參數--initial只有第一次運行需要添加,該參數會導致之前的內容清空) 
數據節點連接後:

è¿éåå¾çæè¿°

3、sql節點:

/usr/local/mysql_cluster/bin/mysqld_safe --user=mysql  &
// 若執行上方命令時出現不能同時寫syslog和error.log的情況,則使用以下指令:
/usr/local/mysql_cluster/bin/mysqld_safe --user=mysql  --skip-syslog &

均連接成功後: 

è¿éåå¾çæè¿°

測試

1、登錄mysql(以下數據庫的操作方式不多做贅述) 
在192.168.131.131與192.168.131.132登錄mysql

mysql -u root -p // 安裝的默認密碼

2、同步測試 
在192.168.131.131主機的mysql上新建數據庫、表與數據。在192.168.131.132主機的mysql中查看數據是否已經被同步。

create database cluster;
use cluster;
// 創建表時需要指定引擎爲ndbcluster(engine=ndb or engine=ndbcluster)
create table test(id int, name char(10))engine=ndb;
insert into test(id, name)values(1,"myname");

3、高可用測試 
在192.168.131.131主機中關閉ndbd連接

pkill ndbd //關閉ndbd有關進程

修改其中一個節點,查看數據是否同步。

在192.168.131.132主機中關閉sql節點的連接

pkill mysqld //關閉mysqld有關進程

在192.168.131.131主機中修改數據,再將192.168.131.132主機中的節點連接回去,查看數據是否同步。

(關閉節點後能在管理節點的ndb_mgm觀察到狀態)此時繼續測試集羣的同步性時可以發現數據仍然同步,說明了當有一個SQL節點或數據節點宕機後,整個MySQL-Cluster環境仍然可以工作。
--------------------- 
以上參考:https://blog.csdn.net/a807557328/article/details/78247269 

 

注意:(遠程連接授權是新建用戶不是直接授權。否則會報錯的)

二、爲需要遠程登錄的用戶賦予權限
1、新建用戶遠程連接mysql數據庫
grant all on *.* to admin@'%' identified by '123456' with grant option; 
flush privileges;
允許任何ip地址(%表示允許任何ip地址)的電腦用admin帳戶和密碼(123456)來訪問這個mysql server。
注意admin賬戶不一定要存在。

2、支持root用戶允許遠程連接mysql數據庫
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
flush privileges;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章