依赖包要求:cmake gcc gcc-c++ ncurses Perl
在7.3以及更高的版本中, WITH_NDB_JAVA是默认启动的,需要配置JAVA环境,
WITH_CLASSPATH配置JAVA目录
。如果不启用,可以: -DWITH_NDB_JAVA=OFF。
CMAKE配置选项:
具体参阅:https://dev.mysql.com/doc/refman/5.6/en/source-configuration-options.html#cmake-general-options
SQL节点存储的是表结构,数据节点存储的是数据文件。
配置参数:
数据节点配置参数参阅:https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-params-ndbd.html https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-ndbd-definition.html
SQL节点配置参数参阅:https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-params-api.html https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-api-definition.html
管理节点参数参阅:https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-params-mgmd.html https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-mgm-definition.html
其他参数参阅:https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-params-other.html
SQL节点与数据节点配置(my.cnf): #SQL节点与数据节点配置都是一样的,在管理节点上区分两个节点。
[mysqld]
ndbcluster
[mysql_cluster]
ndb-connectstring=198.51.100.10 #指向管理服务器
管理节点(config.ini):
[ndbd default] #数据节点所有默认配置
NoOfReplicas=2 #一份数据在集群中的存在份数,与数据节点对应
DataMemory=80M #装载到内存中的数据大小
IndexMemory=18M #装载到内存中索引大小
ServerPort=2202 #默认端口
LockPagesInMainMemory=1
NoOfFragmentLogFiles=300
DataDir=/usr/local/mysql/data
MaxNoOfConcurrentOperations=100000
SchedulerSpinTimer=400
SchedulerExecutionTimer=100
RealTimeScheduler=1
TimeBetweenGlobalCheckpoints=1000
TimeBetweenEpochs=200
RedoBuffer=32M
MaxNoOfTables=1024
MaxNoOfOrderedIndexes=256
[tcp default]
SendBufferMemory=2M
ReceiveBufferMemory=2M
[ndb_mgmd] #管理节点
HostName=198.51.100.10 #IP或者hostname,管理节点
DataDir=/usr/local/mysql/data #数据文件存放目录
[ndbd] #数据节点节点1
HostName=198.51.100.30 #节点IP
NodeId=2 #节点ID
DataDir=/usr/local/mysql/data #节点数据目录
LockExecuteThreadToCPU=1
LockMaintThreadsToCPU=0
[ndbd] #数据节点节点2
HostName=198.51.100.40 #节点IP
NodeId=3
DataDir=/usr/local/mysql/data
LockExecuteThreadToCPU=1
LockMaintThreadsToCPU=0
[mysqld] #sql节点1
HostName=198.51.100.20
[mysqld] #sql节点2
HostName=198.51.100.20
管理节点上进行初始化:
ndb_mgmd -f /var/lib/mysql-cluster/config.ini #指定config.ini文件位置,配置文件位置
SQL节点与数据节点上执行:
--ndbcluster(--initial):该NDBCLUSTER
存储引擎是必要的使用NDB簇
关闭集群,在管理节点上执行:
ndb_mgm -e shutdown