1. 程式人生 > >mysqlcluster mysql叢集配置

mysqlcluster mysql叢集配置

管理節點
該節點的作用是管理NDB叢集中的其他節點,例如提供配置資料,啟動和停止節點以及執行備份等功能。由於此節點型別管理其他節點的配置,因此應首先在任何其他節點之前啟動此型別的節點。使用命令ndb_mgmd啟動MGM節點
資料節點
該型別的節點儲存叢集資料
SQL節點
這是一個訪問叢集資料的節點,必須有mysqld服務程序
下面以4臺伺服器 ip為 192.168.8.129-192.168.8.132
按照如下節點設定對應的ip

節點
SQL節點 192.168.43.207 對外部客戶端提供API (PHP mysql client python…)
資料節點 資料儲存 192.168.43.208 192.168.43.209
管理節點 負責協調 排程 192.168.43.210

如果以前安裝過mysql 需要刪除對應的檔案 例如 /usr/local/mysql /etc/my.cnf /etc/init.d/mysql* /etc/rc.d/init.d/mysql*

SQL節點配置
檢視/etc/passwd和 /etc/group檔案中是否有mysql使用者和組 如果沒有按照如下指令建立
groupadd mysql
useradd -g mysql -s /bin/false mysql
下載mysqlcluster 這裡以下載到/opt目錄為例介紹
cd /opt
wget https://dev.mysql.com/get/Downloads/MySQL-Cluster-7.6/mysql-cluster-gpl-7.6.8-linux-glibc2.12-x86_64.tar.gz
然後解壓 tar zxvf mysql-cluster-gpl-7.6.8-linux-glibc2.12-x86_64.tar.gz
假設在/opt目錄下執行的解壓操作 建立一個符號連結到/usr/local/mysql
ln -s /opt/mysql-cluster-gpl-7.6.8-linux-glibc2.12-x86_64 /usr/local/mysql
cd /usr/local/mysql/bin/
初始化mysql 執行 ./mysqld --initialize 執行完畢後要記住隨機密碼
將mysql目錄所有者和組都修改為mysql
cd /usr/local
執行chown -R mysql:mysql mysql/
設定開機自啟動 cp mysql/support-files/mysql.server /etc/rc.d/init.d/mysql.server
賦予可執行許可權 chmod +x /etc/rc.d/init.d/mysql.server
chkconfig --add mysql.server
啟動/etc/rc.d/init.d/mysql.server start
登入mysql
/usr/local/mysql/bin/mysql -uroot -p資料庫密碼
登陸後可修改mysql密碼
use mysql
ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘新密碼’;
然後退出可用新密碼登入
停止mysql /etc/rc.d/init.d/mysql.server stop 因為還沒有設定sql節點的一些配置資訊

資料節點
需要拷貝 ndbd 和ndbmtd兩個檔案到/usr/local/bin目錄
同樣先解壓或者從其他伺服器拷貝這兩個檔案 下面是命令參考
cp bin/ndbd /usr/local/bin/ndbd
cp bin/ndbmtd /usr/local/bin/ndbmtd
也可以從其他機器遠端拷貝 例如
scp -P 2233 [email protected]:/usr/local/mysql/bin/ndbmtd ./
執行如下程式碼:
scp [email protected]:/usr/local/mysql/bin/ndbmtd ./
scp [email protected]:/usr/local/mysql/bin/ndbd ./
如果這兩個檔案沒有可執行許可權需要給與x許可權
cd /usr/local/bin
chmod +x ndb*

建立資料儲存目錄 mkdir -p /usr/local/mysql/data
上述目錄需要和管理節點中配置的DATAdir一致
chown -R mysql:mysql /usr/local/mysql/

管理節點
需要安裝ndb_mgmd和 ndb_mgm 可以按上述方式拷貝 並且賦予可執行許可權

各節點配置
https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-install-configuration.html

資料節點和SQL節點需要 vi /etc/my.cnf
按照如下方式配置
 

[mysqld]
# Options for mysqld process:
ndbcluster                      # run NDB storage engine

[mysql_cluster]
# Options for NDB Cluster processes:
ndb-connectstring=198.51.100.10  # location of management server

管理節點
mkdir /var/lib/mysql-cluster
cd /var/lib/mysql-cluster
vi config.ini

[ndbd default]
# Options affecting ndbd processes on all data nodes:
NoOfReplicas=2    # Number of replicas
DataMemory=80M    # How much memory to allocate for data storage
IndexMemory=18M   # How much memory to allocate for index storage
                  # For DataMemory and IndexMemory, we have used the
                  # default values. Since the "world" database takes up
                  # only about 500KB, this should be more than enough for
                  # this example NDB Cluster setup.
ServerPort=2202   # This the default value; however, you can use any
                  # port that is free for all the hosts in the cluster
                  # Note1: It is recommended that you do not specify the port
                  # number at all and simply allow the default value to be used
                  # instead
                  # Note2: The port was formerly specified using the PortNumber 
                  # TCP parameter; this parameter is no longer available in NDB
                  # Cluster 7.5.

[ndb_mgmd]
# Management process options:
HostName=192.168.43.210          # Hostname or IP address of MGM node
DataDir=/var/lib/mysql-cluster  # Directory for MGM node log files

[ndbd]
# Options for data node "A":
                                # (one [ndbd] section per data node)
HostName=192.168.43.208          # Hostname or IP address
NodeId=2                        # Node ID for this data node
DataDir=/usr/local/mysql/data   # Directory for this data node's data files

[ndbd]
# Options for data node "B":
HostName=192.168.43.209          # Hostname or IP address
NodeId=3                        # Node ID for this data node
DataDir=/usr/local/mysql/data   # Directory for this data node's data files

[mysqld]
# SQL node options:
HostName=192.168.43.207          # Hostname or IP address
                                # (additional mysqld connections can be
                                # specified for this node for various
                                # purposes such as running ndb_restore)

測試
在管理節點上先執行
ndb_mgmd -f /var/lib/mysql-cluster/config.ini
如果報配置檔案或者目錄找不到 將config.ini拷貝到提示的預設目錄即可
如果沒有報錯 檢視是否有1186埠 如果有
ndb_mgm 進入客戶端命令列 執行show 檢視各節點的狀態 此時 資料節點 sql節點都未啟動 應該都是未連線狀態
啟動資料節點
在每一臺資料節點上都執行 ndbd
在sql節點上執行 /etc/rc.d/init.d/mysql.server start 啟動mysqld服務

然後客戶端可以連線sql節點進行資料操作

關閉叢集
在管理節點上執行 ndb_mgm -e shutdown可以關閉管理節點以及資料節點

sql節點可以按照關閉普通mysql服務的方式關閉
/etc/rc.d/init.d/mysql.server stop

-----常見錯誤
1.SQL節點MySQL服務無法啟動
(1)如果以前安裝過mysql 需要刪除對應的檔案 例如 /usr/local/mysql /etc/my.cnf /etc/init.d/mysql* /etc/rc.d/init.d/mysql*
(2) cluster壓縮檔案解壓後做符號連結 檢驗是否正確連線 ls -l /usr/local    
解壓時不要解壓到/root 目錄下(包括建立虛擬主機時也要避免此種情況)
(3)設定/usr/local/mysql 目錄及子目錄的使用者和組都為mysql ( ./mysqld --initialize命令之後必須再設定一次)
(4)管理節點中設定的ip和SQL節點的ip不一致
(5)查詢錯誤日誌 /usr/local/data/***.err 查詢error選項 再進一步排查

2.啟動順序
先啟動管理節點 再啟動資料節點 最後啟動SQL節點
資料節點儲存資料的目錄是 /usr/local/mysql/data 保證初始狀態 資料儲存目錄為空
3.必須使用DDBCLUSTER儲存引擎 如果使用其他儲存引擎需要使用alter table 修改儲存引擎