Redhat6.5下MySQL5.6集群配置完整版


1、准备三台服务器

2、为三台机器分别安装Linux操作系统(Oracle Linux / RHEL 6.5 x86_64bit)

3、分别IP地址

管理节点      192.168.1.110        (负责管理整个集群)

SQL节点      192.168.1.111        (负责操作数据库)

SQL节点      192.168.1.112        (负责操作数据库)

数据节点      192.168.1.111        (负责存储数据)

数据节点      192.168.1.112        (负责存储数据)

 


SQL节点和数据节点可以同在一台机器上

 


4、修改三台服务器的/etc/hosts文件,修改完后的内容如下:

127.0.0.1    localhost    localhost.domain

192.168.1.110    node01

192.168.1.111    node02

192.168.1.112    node03

 

5、修改三台服务器的/etc/sysconfig/nework文件,修改完后的内容分别如下:

NETWORKING=yes

HOSTNAME=node01

GATEWAY=192.168.1.1    (网关地址因所处网络的不同而不同)

 


NETWORKING=yes

HOSTNAME=node02

GATEWAY=192.168.1.1    (网关地址因所处网络的不同而不同)

 

NETWORKING=yes

HOSTNAME=node03

GATEWAY=192.168.1.1    (网关地址因所处网络的不同而不同)

 


6、分别重启三台服务器

--------------------------------------分割线 --------------------------------------

Ubuntu 14.04下安装MySQL

《MySQL权威指南(原书第2版)》清晰中文扫描版 PDF

Ubuntu 14.04 LTS 安装 LNMP Nginx\PHP5 (PHP-FPM)\MySQL

Ubuntu 14.04下搭建MySQL主从服务器

Ubuntu 12.04 LTS 构建高可用分布式 MySQL 集群

Ubuntu 12.04下源代码安装MySQL5.6以及Python-MySQLdb

--------------------------------------分割线 --------------------------------------


7、下载NDB集群软件mysql-cluster-advanced-7.3.5-linux-glibc2.5-x86_64.tar.gz 

集群软件有三种格式:

a、以tar.gz结尾的二制进格式

b、以rpm结尾的rpm包形式

c、以源文件编译安装方式

 


rpm包安装方式,由于是自动安装的,所以不方便配置软件安装位置和数据存储位置

 


所以通常选用.tar.gz结尾的二进制格式的安装文件

 


注意:mysql-cluster-advanced-7.3.5-linux-glibc2.5-x86_64.tar.gz包含了mysql数据库软件和NDB集群软件

 


8、分别复制mysql-cluster-advanced-7.3.5-linux-glibc2.5-x86_64.tar.gz文件到三台服务器上的/usr/local/目录下

 


9、新建用户mysql

# groupadd mysql

# useradd -r -g mysql mysql      (由于mysql用户只是用于安装配置NDB集群或mysql软件,而不用用于登陆系统)

    (所以以-r参数来创建mysql用户,并且不用为该用户设置密码)

 


10、分别在三台服务器上解压mysql-cluster-advanced-7.3.5-linux-glibc2.5-x86_64.tar.gz文件

 


# cd /usr/local

# tar zxvf mysql-cluster-advanced-7.3.5-linux-glibc2.5-x86_64.tar.gz

# ln -s mysql-cluster-advanced-7.3.5-linux-glibc2.5-x86_64  mysql

# chown -R mysql.mysql mysql-cluster-advanced-7.3.5-linux-glibc2.5-x86_64

# cd mysql

# chown -R mysql.mysql .

配置完成以后,结果如下

 

 

 

11、在192.168.1.111和192.168.1.112两个数据节点(两台服务器)上安装mysql数据库软件

由于是二进制安装,所以mysql数据库软件就安装在/usr/local/mysql下,

    但数据库的数据可以存放到其它地方,如/u01/app/mysql/data/下面

 

注意:以下命令在两台数据节点服务器上都要执行

 

# mkdir -p /u01/app/mysql/data

# chown -R mysql.mysql /u01

# cd /usr/local/mysql

# scripts/mysql_install_db --basedir=/usr/local/mysql  --datadir=/u01/app/mysql/data --user=mysql

执行完这条命令以后,数据库的数据文件(包括mysql,test , performance_schema等数据库)就被安装到了

/u01/app/mysql/data目录下了

 


# cp bin/ndbd  /usr/local/bin/

# cp bin/ndbmtd /usr/local/bin/

然后将启动数据库服务的启动文件复制到/etc/rc.d/init.d/目录下

 


# cp support-files/mysql.server  /etc/rc.d/init.d/mysqld    (改名)

执行完上面这条命令以后,就可以使用service mysqld start | stop | restart命令来管理数据库服务了

 


# cp my.cnf  /etc/my.cnf

# vi /etc/my.cnf

[mysqld]

ndbcluster

basedir=/usr/local/mysql

datadir=/u01/app/mysql/data

port=3306

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

 


[mysql_cluster]

ndb-connectstring=192.168.1.110

 

再次注意:以上命令在两台数据节点服务器上都要执行

 

到此,数据节点和SQL节点的安装配置就结束了,如果数据节点和SQL节点是分开在不同的机器上,则每个数据节点

和每个SQL节点都要执行以上命令。

 


12、在管理节点上进行安装配置

 

由于第10步已经解压缩mysql-cluster-advanced-7.3.5-linux-glibc2.5-x86_64.tar.gz 安装包到了/usr/local

目录下,并进行了软连接等操作,所以这些工作就不用重复做了,接着往下配置即可

 


# cd /usr/local/mysql

# mkdir mysql-cluster    (创建mysql-cluster目录,后面启动集群管理服务时要用)

# cp bin/ndb_mgm*    /usr/local/bin/

# cd /var/lib

# mkdir mysql-cluster

# cd mysql-cluster

# vi config.ini  (这是管理节点上的集群配置文件,很重要)

[ndbd default]

NoOfReplicas=1    # 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]

                  # 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]

hostname=192.168.1.110          # Hostname or IP address of MGM node

datadir=/var/lib/mysql-cluster  # Directory for MGM node log files

NodeId=1

 


[ndbd]

hostname=192.168.1.111        # Hostname or IP address

datadir=/u01/app/mysql/data  # Directory for this data node's data files

NodeId=2

 


[ndbd]

hostname=192.168.1.112        # Hostname or IP address

datadir=/u01/app/mysql/data  # Directory for this data node's data files

NodeId=3

 

 

[mysqld]

hostname=192.168.1.111        # Hostname or IP address

NodeId=4                      # (additional mysqld connections can be

                              # specified for this node for various

                              # purposes such as running ndb_restore)

 


[mysqld]

hostname=192.168.1.112        # Hostname or IP address

NodeId=5                      # (additional mysqld connections can be

                              # specified for this node for various

                              # purposes such as running ndb_restore)

 


配置说明:

[ndbd default]                这部分是公共部分,对于每一个数据节点都有效,只需要配置一份

NoOfReplicas=1                数据镜像几份(各数据节点之间相互备份)

 


[tcp default]                针对每个数据节点及管理节点之间使用哪个端口进行通讯,

                              在旧版本的NDB集群软件配置时,这个地方通常配置portnumber=2202

                              但新版的NDB软件这里不需要配置,并且MySQL官方也强烈建议不要配置

 


[ndb_mgmd]                    管理节点的配置部分(通常只有一个)

                              注意NodeId=1指明管理节点的节点ID为1,如果不指定,在启动集群时,会报错

hostname=192.168.1.110          指明管理节点的IP地址

datadir=/var/lib/mysql-cluster  指明集群管理日志存放的位置

 


[ndbd]                        数据节点配置部分,有几个数据节点就配置几个[ndbd]

hostname=192.168.1.111        指明数据节点的IP地址

datadir=/u01/app/mysql/data    指明数据节点上的数据库文件存放的位置

NodeId=2                      指明该数据节点在整个集群中的nodeid号(很重要)

 

[mysqld]                      SQL节点配置部分,有几个SQL节点,就配置几个[mysqld]

更多详情见请继续阅读下一页的精彩内容:

  • 1
  • 2
  • 下一页

相关内容