当前位置:Gxlcms > 数据库问题 > 手把手教你用Mysql-Cluster-7.5搭建数据库集群

手把手教你用Mysql-Cluster-7.5搭建数据库集群

时间:2021-07-01 10:21:17 帮助过:23人阅读

] # 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.0.10 # 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.0.30 # Hostname or IP address NodeId=2 # Node ID for this data node DataDir=/usr/local/mysql/data # Directory for this data nodes data files [ndbd] # Options for data node "B": HostName=192.168.0.40 # Hostname or IP address NodeId=3 # Node ID for this data node DataDir=/usr/local/mysql/data # Directory for this data nodes data files [mysqld] # SQL node options: HostName=192.168.0.20 # Hostname or IP address # (additional mysqld connections can be # specified for this node for various # purposes such as running ndb_restore)
[ndbd default]
NoOfReplicas=2DataMemory=512M
IndexMemory=18M

[ndb_mgmd]
HostName=192.168.75.129
DataDir=/var/lib/mysql-cluster

[ndbd]
HostName=192.168.75.128
DataDir=/var/lib/mysql-cluster

[ndbd]
HostName=192.168.75.130
DataDir=/var/lib/mysql-cluster

[mysqld]
[mysqld]

使用配置文件初始化管理节点

# /usr/local/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial

出现MySQL Cluster Management Server mysql-5.7.16 ndb-7.5.4

然后就能使用ndbd进去管理了

# ndbd

ndb_mgm>show(使用show命令查看管理情况,当数据节点配置完毕之后,我们再用这个命令查看和管理)

到此为止管理节点配置完毕,接下去配置数据和sql节点

 

安装配置数据和mysql节点

以下的所有操作需要在所有的集群节点都要进行相同的操作

新增用户组mysql和用户msyql

# groupadd mysql

# useradd -g mysql -s /bin/false mysql

新建文件夹并赋予权限

# mkdir /var/lib/mysql-cluster

# chown root:mysql /var/lib/mysql-cluster

将下载后的包上传至服务器/usr/local下

解压

# tar xvf mysql-cluster-gpl-7.5.4-linux-glibc2.5-x86_64.tar.gz

创建链接方便访问

# ln -s /usr/local/mysql-cluster-gpl-7.5.4-linux-glibc2.5-x86_64 /usr/local/mysql

初始化数据库(这里要注意,如果你安装的版本和我的不同,数据库初始化的命令使不同的,很多之前的版本会使用:scripts/mysql_install_db --user=mysql来初始化,这个已经被mysql在新的版本中废弃了,所以需要使用下面的命令安装,如果你需要安装别的版本请参考mysql官网的对应版本的安装命令。)

# cd mysql

# mysqld --initialize

修改权限

# chown -R root .

# chown -R mysql data

# chgrp -R mysql .

# cp support-files/mysql.server /etc/rc.d/init.d/

# chmod +x /etc/rc.d/init.d/mysql.server

# chkconfig --add mysql.server

配置数据节点

# vi /etc/my.cnf

[mysqld]
ndbcluster
ndb-connectstring=192.168.75.129

[mysql_cluster]
ndb-connectstring=192.168.75.129
其中的IP为管理节点的IP

启动集群节点上面的服务启动mysql(成功会有success)# /etc/init.d/mysql.server start


启动ndbd# /etc/init.d/ndbd --initial如果上述不行使用绝对路径的这个:# /usr/local/mysql/bin/ndbd --initial如果出现下述现象就成功了

2017-03-06 14:04:07 [ndbd] INFO     -- Angel connected to ‘192.168.75.129:1186‘
2017-03-06 14:04:07 [ndbd] INFO     -- Angel allocated nodeid: 2

 

最后当所有的节点配置完成,回到管理节点,使用上述说过的show查看,如下的类似显示,证明已经连接完成

ndb_mgm> show
Cluster Configuration
---------------------
[ndbd(NDB)]    2 node(s)
id=2 (not connected, accepting connect from 192.168.75.128)
id=3    @192.168.75.130  (mysql-5.1.63 ndb-7.1.23, starting, Nodegroup: 0)

[ndb_mgmd(MGM)]    1 node(s)
id=1    @192.168.75.129  (mysql-5.7.16 ndb-7.5.4)

[mysqld(API)]    2 node(s)
id=4 (not connected, accepting connect from any host)
id=5 (not connected, accepting connect from any host)

 

测试

修改mysql密码统一,修改mysql的访问权限,使外部ip能远程访问mysql

然后创建在一台上面创建数据库,看另一台是否被同步,然后创建表,然后新增删除等等。

唯一需要注意的是,创建表的时候必须选择表的引擎为NDBCLUSTER,否则表不会进行同步

下面是测试的截图

技术分享技术分享

技术分享

如果使用sql创建表,命令为:CREATE TABLE student (age INT) ENGINE=NDBCLUSTER

 

启动和关闭

启动mysql集群。启动顺序为:管理节点→数据节点→SQL节点。

启动的命令上面都有,删去--initial即可

关闭时只需要关闭管理节点,后面的数据节点会同时被关闭,mysql就和原来一样即可

管理节点关闭命令:ndb_mgm -e shutdown

 

总结

1、在实际中需要分开数据节点和sql节点。

2、安装最好参考官网的文档进行配置安装,网上的博客安装的可能为旧版本,命令可能不同,连我自己现在写的不知道你看的时候是不是官网又出了新版本,可能在某些地方进行了改动。

3、配置文件过于简单,还有很多配置会在实际中被使用到,需要参考文档进行添加。

4、架构简单,实验足够,现实远不足。

5、还未测试各种节点断开、服务器停止、数据库服务停止、是否会出现数据异常等等特殊情况,还需要进行考虑。因为一旦数据不同步,想要恢复数据会比较麻烦。

 

最后给出mysql官网的参考文档:https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-installation.html

官网安装步骤可能和我的不同,我尽可能一台弄好再弄另外的,官网有配置和启动进行划分,每台同时进行,所以需要看清楚。

实现集群的方式不止这一种,网上给出了几种方式,这里只做参考:

http://www.2cto.com/database/201504/387166.htm

 

转载请注明出处:http://www.cnblogs.com/linkstar/p/6510713.html

作者:LinkinStar

手把手教你用Mysql-Cluster-7.5搭建数据库集群

标签:配置文件   远程访问   自动   info   安装步骤   mem   微软雅黑   param   scripts   

人气教程排行