Linux下的Mysql集群之路

一。安装mysql集群版本

首先下载二进制版本的mysql集群 传送门 。这里我下载的是7.4.13.

二。sql节点:在每一个主机上使用root权限来执行一下步骤。

shell>groupadd mysql

shell>useradd -g mysql -s /bin/false mysql

执行上面命令,增加mysql用户组以及mysql用户。(注意,有些linux发行版本可能命令不一样,例如,我使用的Debian,使用的是上面的命令,但是有些可能是使用 adduser和addgroup命令)。

1. 将下载后的文件放在 /var/tmp 文件夹上,然后创建软连接。

shell>cd /var/tmp

shell>tar -C /usr/local -xzvf mysql-cluster-gpl-7.4.13-linux2.6.tar.gz

shell>ln -s /usr/local/mysql-cluster-gpl-7.4.13-linux2.6-i686 /usr/local/mysql

2. 进入mysql目录,执行提供的脚本创建系统数据库

shell>cd mysql

shell>scripts/mysql_install_db --user=mysql

3. 为mysql服务器和数据目录设置必要的权限

shell>chown -R root .

shell>chown -R mysql data

shell>chgrp -R mysql .

4. 拷贝mysql的启动脚本到相应的目录,让它可执行,并且设置为开机启动

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

shell>chmod +x /etc/rc.d/init.d/mysql.server

shell>chkconfig --add mysql.server

这里需要注意的是,不同的linxu发行版本的开机启动脚本的所在目录可能不尽相同,使用一切手段找到这个目录。我的Debian上,目录是 /etc/init.d

上面的chkconfig命令适用于ret hat,至于其他版本,需要你自己去搜索。在Debian上,命令是 update-rc.d --add mysql.server.

5. 上面每一个步骤,都需要在每个sql节点(主机)上设置相同的操作。

三。数据节点

安装数据节点并不需要用到mysqld二进制文件,只需要用到 ndbd(单线程)或者ndbmtd(多线程)即可。下面操作使用root权限

1. 进入/var/tmp/mysql目录,将bin/ndbd拷贝到/usr/local/bin/ndbd,将bin/ndbmtd拷贝到/usr/local/bin/ndbmtd

shell>cd mysql

shell>cp bin/ndbd /usr/local/bin/ndbd

shell>cp bin/ndbmtd /usr/local/bin/ndbmtd

2. 进入/usr/local/bin, 执行一下命令

shell>cd /usr/local/bin

shell>chmod +x ndb*

四。管理节点

1. 和上面安装数据节点一样,也是不需要mysqld,只需要管理服务ndb_mgmd即可。顺便也安装一下ndb_mgm命令吧,可以查看并且管理各种节点。

shell>cd /var/tmp/mysql

shell>cp bin/ndb_mgm* /usr/local/bin

2. 同样的,进入/usr/local/bin,赋予ndb_mgm*相关权限

shell>cd /usr/local/bin

shell>chmod +x ndb_mgm*

五。初始化配置文件

1. 每个数据节点和sql节点需要一个配置文件 my.cnf ,用来配置connection-string(找到相应的管理节点),并且让mysqld开启 ndbcluster 存储引擎

2. 每个管理节点需要配置文件 config.ini文件,来配置节点的部署以及内存限制等等相关事宜。

3. 数据节点和sql节点配置。使用你喜欢的工具打开/etc/my.cnf(不存在的话就新建一个),比如vim

shell> vi /etc/my.cnf

配置如下

[mysqld]

# Options for mysqld process:

ndbcluster                      

# run NDB storage engine

[mysql_cluster]

# Options for MySQL Cluster processes:

ndb-connectstring=192.168.0.10 

# location of management server

在数据节点和sql节点均要配置此文件。

注意:一旦你使用了参数ndbcluster ndb-connectstring启动mysqld进程,正如先前的my.cnf文件的参数所示。 在集群没有完全开启之前,你不能执行创建或者改变表的语句,否则会报错。真的。

4. 配置管理节点

使用root权限执行一下步骤

shell>mkdir /var/lib/mysql-cluster

shell>cd /var/lib/mysql-cluster

shell>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 Cluster setup.

[tcp default]

# TCP/IP options:

portnumber=2202  # This the default; however, you can use any

# port that is free for all the hosts in the cluster

# Note: It is recommended that you do not specify the port

# number at all and simply allow the default value to be used

# instead

[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

datadir=/usr/local/mysql/data  # Directory for this data node's data files

[ndbd]

# Options for data node "B":

hostname=192.168.0.40          # Hostname or IP address

datadir=/usr/local/mysql/data  # Directory for this data node's 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)

上面的注释就不多说了(我不懂,哈哈哈)

六。启动Mysql集群

只要配置成功之后,要启动集群并不是一件很难的事情(真的吗?)。每个node节点都分别启动。这里稍微注意的是,管理节点必须首先启动,然后是数据节点,最后才是sql节点。记住,不然会报错的。亲测。

1. 启动管理节点

shell>ndb_mgmd -f /var/lib/mysql-cluster/config.ini

首次启动管理节点,ndb_mgmd必须带上参数,告诉我们配置文件(使用 -f或者--config-file参数)

2. 在每个数据节点的主机,执行一下命令开启ndbd进程

shell>ndbd

3. 如果你使用RPM文件安装Mysql,你可以(必须)用提供的脚本启动Mysql服务进程启动sql节点。

4. 如果所有步骤都弄好了,那mysql集群也就算是搭建好了。你可以使用ndb_mgm命令来管理节点客户端(数据节点和sql节点)。看起来,应该像下面所示

shell>ndb_mgm

-- NDB Cluster -- Management Client --

ndb_mgm>SHOWConnected to Management Server at: localhost:1186Cluster Configuration---------------------

[ndbd(NDB)]    2 node(s)

id=2    @192.168.0.30  (Version: 5.6.32-ndb-7.4.13, Nodegroup: 0, *)

id=3    @192.168.0.40  (Version: 5.6.32-ndb-7.4.13, Nodegroup: 0)

[ndb_mgmd(MGM)] 1 node(s)

id=1    @192.168.0.10  (Version: 5.6.32-ndb-7.4.13)

[mysqld(API)]  1 node(s)

id=4    @192.168.0.20  (Version: 5.6.32-ndb-7.4.13)

上面的[mysqld(API)]就是sql节点了。这就告诉我们一件事,mysqld进程作为一个集群api存在

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,056评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,842评论 2 378
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,938评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,296评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,292评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,413评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,824评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,493评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,686评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,502评论 2 318
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,553评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,281评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,820评论 3 305
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,873评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,109评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,699评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,257评论 2 341

推荐阅读更多精彩内容