mysql集群初始化配置_集群Cluster MySQL的安装配置和使用
集群Cluster MySQL的安裝配置和使用
發布時間:2020-05-28 14:20:03
來源:億速云
閱讀:233
作者:鴿子
MySQL Cluster MySQL集群
基本概念:
“NDB” 是一種“內存中”的存儲引擎,它具有可用性高和數據一致性好的特點。
MySQL Cluster 能夠使用多種故障切換和負載平衡選項配置NDB存儲引擎,但在 Cluster 級別上的存儲引擎上做這個最簡單。MySQL Cluster的NDB存儲引擎包含完整的數據集,僅取決于 Cluster本身內的其他數據。
管理(MGM)節點:這類節點的作用是管理MySQL Cluster內的其他節點,如提供配置數據、啟動并停止節點、運行備份等。由于這類節點負責管理其他節點的配置,應在啟動其他節點之前首先啟動這類節點。MGM節點是用命令“ndb_mgmd”啟動的。
數據節點:這類節點用于保存 Cluster的數據。數據節點的數目與副本的數目相關,是片段的倍數。例如,對于兩個副本,每個副本有兩個片段,那么就有4個數據節點。不過沒有必要設置多個副本。數據節點是用命令“ndbd”啟動的。
SQL節點:這是用來訪問 Cluster數據的節點。對于MySQL Cluster,客戶端節點是使用NDB Cluster存儲引擎的傳統MySQL服務器。通常,SQL節點是使用命令“mysqld -ndbcluster”啟動的,或將“ndbcluster”添加到“my.cnf”后使用“mysqld”啟動。
管理服務器(MGM節點)負責管理 Cluster配置文件和 Cluster日志。 Cluster中的每個節點從管理服務器檢索配置數據,并請求確定管理服務器所在位置的方式。當數據節點內出現新的事件時,節點將關于這類事件的信息傳輸到管理服務器,然后,將這類信息寫入 Cluster日志。
集群配置概述:
安裝版本:mysql cluster 7.3.2
操作系統 :centos6.3(X64)
軟件名稱 :mysql-cluster-gpl-7.3.2-linux-glibc2.5-x86_64.tar.gz (通用版)
管理節點IP:192.168.0.202
數據節點-SQL節點IP:192.168.0.203
數據節點-SQL節點IP:192.168.0.204
安裝依賴包:yum install -y glibc perl libaio-devel
x32位系統要安裝兼容庫組:yum groupinstall “Compatibility libraries”
一、管理節點安裝配置
1、安裝mysql-clustergroupadd mysql
useradd -g mysql -s /sbin/nologin mysql
tar -zxvf mysql-cluster-gpl-7.3.2-linux-glibc2.5-x86_64. tar .gz
mv mysql-cluster-gpl-7.3.2-linux-glibc2.5-x86_64 /usr/local/mysql-cluster
chown -R root.mysql /usr/local/mysql/
chown -R mysql.mysql /usr/local/mysql/data/
/usr/local/mysql/scripts/mysql_install_db --basedir= /usr/local/mysql --datadir= /usr/local/mysql/data --user=mysql & #初始化數據庫
cp -rf /usr/local/mysql/bin/ndb_mgm * /usr/local/bin/ #復制ndb節點管理命令到本地,方便使用
2、修改mysql主配置文件vi /etc/my .cnf
[MYSQLD]
user = mysql
socket = /tmp/mysql .sock
basedir = /usr/local/mysql #安裝目錄
datadir = /usr/local/mysql/data #數據庫存放目錄
character-sets-server=UTF8
ndbcluster #運行NDB存儲引擎
ndb-connectstring=192.168.0.202
lower_case_table_names=1 #表名是否區分大小寫1為不區分,不然linux下表名是區分大小寫的
[MYSQL_CLUSTER]
ndb-connectstring=192.168.0.202 #Mysql Cluster管理節點IP
3、創建mysql集群配置文件mkdir /var/lib/mysql-cluster
vi /var/lib/mysql-cluster/config .ini
[ndbd default]
NoOfReplicas=2 #定義在Cluster環境中相同數據的份數,最大為4
DataMemory=256M #分配的數據內存大小,根據本機服務器內存適量來分配
IndexMemory=256M #設定用于存放索引(非主鍵)數據的內存段大小
#一個NDB節點能存放的數據量是會受到DataMemory和IndexMemory兩個參數設置的約束,兩者任何一個達到限制數量后,都無法再增加能存儲的數據量。如果繼續存入數據系統會報錯“table is full”。
[ndb_mgmd]
nodeid=1
hostname =192.168.0.202
datadir= /var/lib/mysql-cluster/
[ndbd]
nodeid=2
hostname =192.168.0.203
datadir= /usr/local/mysql/data
[ndbd]
nodeid=3
hostname =192.168.0.204
datadir= /usr/local/mysql/data
[mysqld]
nodeid=4
hostname =192.168.0.203
[mysqld]
nodeid=5
hostname =192.168.0.204
保存退出!chown mysql.mysql /var/lib/mysql-cluster/config .ini
二、兩臺數據節點和SQL節點配置相同
1、安裝mysql-clustertar -zxvf mysql-cluster-gpl-7.3.2-linux-glibc2.5-x86_64. tar .gz
mv mysql-cluster-gpl-7.3.2-linux-glibc2.5-x86_64 /usr/local/mysql
groupadd mysql
useradd -g mysql -s /sbin/nologin mysql
chown -R root.mysql /usr/local/mysql
chown -R mysql.mysql /usr/local/mysql/data
/usr/local/mysql/scripts/mysql_install_db --basedir= /usr/local/mysql --datadir= /usr/local/mysql/data --user=mysql & #初始化數據庫
cp /usr/local/mysql/support-files/mysql .server /etc/init .d /mysqld
cp /usr/local/mysql/support-files/medium .cnf /etc/my .cnf
chmod +x /etc/init .d /mysqld
2、修改mysql配置文件vi /etc/my .cnf
[MYSQLD]
user=mysql
character_set_server=utf8
ndbcluster
ndb-connectstring=192.168.0.202
default-storage-engine=ndbcluster #設置默認是NDB存儲引擎
datadir= /usr/local/mysql/data
basedir= /usr/local/mysql
[MYSQL_CLUSTER]
ndb-connectstring=192.168.0.202 #mysql cluster 管理節點IP
三、測試(先關閉三臺服務器的防火墻(IPTABLES)與 Selinux)
1、啟動管理節點ndb_mgmd -f /var/lib/mysql-cluster/config .ini --initial
netstat -tuplna | grep 1186 #默認連接端口1186,啟動成功
tcp 0 0 0.0.0.0:1186 0.0.0.0:* LISTEN 1369 /ndb_mgmd
#--initial:第一次啟動時加上,其它時候不要加,不然會數據清空,除非是在備份、恢復或配置變化后重啟時。
如果啟動出現報錯:把config.ini里設置的nodeid都給刪除即可!
2、啟動兩臺數據節點和SQL節點
數據節點:/usr/local/mysql/bin/ndbd --initial
SQL節點:bin/mysqld_safe --user=mysql & 或 service mysqld start
3、查看集群狀態
ndb_mgm -e show #顯示管理節點和數據節點則配置成功
4、創建一個數據庫驗證是否同步
mysql -u root -p
Mysql>create database ?test ;
Mysql>use ?test ;
Mysql>create table abc ( id ?int) engine=ndbcluster; #指定數據庫表的引擎為NDB,否則同步失敗
Mysql>Insert into abc ()values (1);
Mysql> select ?* from abc;
#此時看兩個數據是否數據一致,如果一致說明集群已經成功!
注意事項:
1.在建表的時候一定要用ENGINE=NDB或ENGINE=NDBCLUSTER指定使用NDB集群存儲引擎,或用ALTER TABLE選項更改表的存儲引擎。
2.NDB表必須有一個主鍵,因此創建表的時候必須定義主鍵,否則NDB存儲引擎將自動生成隱含的主鍵。
3.Sql節點的用戶權限表仍然采用MYISAM存儲引擎保存的,所以在一個Sql節點創建的MySql用戶只能訪問這個節點,如果要用同樣的用戶訪問別的Sql節點,需要在對應的Sql節點追加用戶。
四、管理和維護命令
關閉mysql集群:ndb_mgm -e shutdown
重啟mysql集群:ndb_mgmd -f /var/lib/mysql-cluster/config.ini
重啟數據節點:/usr/local/mysql/bin/ndbd
啟動SQL節點:/usr/local/mysql/bin/mysqld_safe --user=mysql & 或 service mysqld restart
查看mysql狀態:ndb_mgm -e show
啟動順序:
管理節點 -> 數據節點 -> SQL節點
關閉順序:
SQL節點 -> 數據節點 -> 管理節點
總結
以上是生活随笔為你收集整理的mysql集群初始化配置_集群Cluster MySQL的安装配置和使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 粒子群优化算法的实现
- 下一篇: mysql类exadata功能_Exad