【技术】关于mysql-cluter集群配置详解

os version:centos 6.6

mysql-cluster version:mysql-cluster-gpl-7.4.4-linux-glibc2.5-x86_64

配置介绍:本集群有一个管理结点,两个数据结点以及两个mysql结点组成

首先安装cluster前要进行mysql用户的添加

 

添加mysql用户

1.      # groupadd mysql 

2.      # useradd mysql -g mysql

 

安装mysql-cluster 7.4.4-linux

1.      # cd /usr/local/src/(已下载好集群版) 

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

3.      # mv mysql-cluster-gpl-7.4.4-linux-glibc2.5-x86_64 ../mysql 

4.      # cd .. 

5.      # chown -R mysql:mysql mysql/ 

6.      # cd mysql 

7.      # scripts/mysql_install_db --user=mysql

 

集群配置

首先进行管理节点的配置(终端输入)

# vi  /var/lib/mysql-cluster/config.ini (目录和文件没有请新建,添加以下内容)

 

  1.      [NDBD DEFAULT] 
  2.      NoOfReplicas=2 
  3.      [TCP DEFAULT] 
  4.      portnumber=3306 
  5.        
  6.       [NDB_MGMD] 
  7.       #设置管理节点服务器  
  8.       nodeid=1 
  9.       HostName=192.168.191.132 (管理节点服务器ip地址)
  10.       DataDir=/var/mysql/data 
  11.     
  12.       [NDBD] 
  13.       nodeid=2 
  14.       HostName=192.168.191.130 (ndbd点ip地址)
  15.       DataDir=/var/mysql/data 
  16.      
  17.       [NDBD] 
  18.       nodeid=3
  19.       HostName=192.168.191.131 (ndbd点ip地址)
  20.       DataDir=/var/mysql/data 
  21.     
  22.       [MYSQLD] 
  23.       nodeid=4 
  24.       HostName=192.168.191.133  (mysqld节点ip地址)
  25.       [MYSQLD] 
  26.       nodeid=5 
  27.       HostName=192.168.191.134  (mysqld节点ip地址)
  28.     
  29.       #必须有空的mysqld节点,不然数据节点断开后启动有报错 
  30.       [MYSQLD] 
  31.       nodeid=6 
  32.       [mysqld] 
  33.       nodeid=7

 

拷贝ndb_mgm、ndb_mgmd、config.ini到bin目录。

# cd /usr/local/mysql/bin 

# cp ./ndb_mgm /usr/local/bin/ 

# cp ./ndb_mgmd /usr/local/bin/

# cp /var/lib/mysql-cluster/config.ini /usr/local/bin/

 

数据节点配置(终端输入)

# vi /etc/my.cnf (添加以下内容)

 

[mysqld] 

datadir=/var/mysql/data 

socket=/var/mysql/mysql.sock 

user=mysql 

# Disabling symbolic-links is recommended to prevent assorted security risks 

symbolic-links=0 

 

#运行NDB存储引擎 

ndbcluster  

#指定管理节点 

ndb-connectstring=192.168.191.132  (管理节点ip)

 

[MYSQL_CLUSTER] 

ndb-connectstring=192.168.191.132   (管理节点ip)

[NDB_MGM] 

connect-string=192.168.191.132   (管理节点ip)

 

[mysqld_safe] 

log-error=/var/mysql/log/mysqld.log 

pid-file=/var/run/mysqld/mysqld.pid

 

 

 

Sql节点配置(终端输入)

# cd /usr/local/mysql/

 

设置mysql服务为开机自启动

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

# chmod +x /etc/rc.d/init.d/mysqld 

# chkconfig --add mysqld

 

# vi /etc/my.cnf (添加以下内容)

[mysqld]    

datadir=/var/mysql/data 

socket=/var/mysql/mysql.sock 

user=mysql 

# Disabling symbolic-links is recommended to prevent assorted security risks 

symbolic-links=0 

log-bin = /var/mysql/log/mysql-bin.log 

max_connections=1000 

 

#以下为mysql 主主模式的配置文件 

# 忽略mysql数据库复制 

binlog-ignore-db=mysql 

# 每次增长2 

auto-increment-increment=2 

# 设置自动增长的字段的偏移量,即初始值为2 

auto-increment-offset=1 

ndbcluster 

ndb-connectstring=192.168.191.132 (管理节点ip)

 

[MYSQL_CLUSTER] 

ndb-connectstring=192.168.191.132  (管理节点ip)

[NDB_MGM] 

connect-string=192.168.191.132  (管理节点ip)

 

[mysqld_safe] 

log-error=/var/mysql/log/mysqld.log 

pid-file=/var/run/mysqld/mysqld.pid 

 

这里要注意,在var目录下新建mysql目录,在新建的mysql目录下建立log和data目录

另外要给这两个目录授权代码如下

# cd /var

# chown –R mysql:mysql mysql/

 

下面两个命令是对mysql命令的一个link,否则无法使用mysql命令

# ln –s /usr/local/mysql/bin/mysql  /usr/bin

# ln –s /var/mysql/mysql.sock  /tmp/mysql.sock

 

 

运行mysql-cluster

 

mysql集群的启动顺序为:管理节点->数据节点->SQL节点

mysql集群的关闭顺序为,管理节点->数据节点->SQL节点

 

打开服务的时候注意防火墙问题

注意把管理节点的防火墙关闭 命令如下:

# /etc/init.d/iptables stop

 

 

 

首先打开管理节点服务

# ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial(注意第一次或者对config文件进行修改后,打开服务一定要加上initial否则新增加的内容不会被使用)

然后打开ndbd节点服务

# /usr/local/mysql/bin/ndbd --initial(此处同上)

出现一下信息表示ndbd节点启动成功.

2012-03-28 02:01:38 [ndbd] INFO -- Angel connected to '10.32.33.120:1186'

2012-03-28 02:01:38 [ndbd] INFO -- Angel allocated nodeid: 36

 

 

 

 

 

最后打开两个sql节点133和134

#service mysqld start

出现mysql success表示服务启动成功

 

 

打开管理节点,终端输入

# ndb_mgm

#ndb_mgm> show

显示以下信息,则mysql-cluster安装部署成功

Cluster Configuration

---------------------

[ndbd(NDB)] 2 node(s)

id=2 @192.168.191.130 (mysql-5.5.20 ndb-7.4.4, Nodegroup: 0)

id=3 @192.168.191.131 (mysql-5.5.20 ndb-7.4.4, Nodegroup: 0)

[ndb_mgmd(MGM)] 1 node(s)

id=1 @192.168.191.132 (mysql-5.5.20 ndb-7.4.4)

 

[mysqld(API)] 4 node(s)

 

id=4 @192.168.191.133 (mysql-5.5.20 ndb-7.4.4)

 

id=5 @192.168.191.134 (mysql-5.5.20 ndb-7.4.4)

 

id=6 (not connected, accepting connect from any host)

 

id=7 (not connected, accepting connect from any host)

 

可以看到各个节点已经连接上了。

 

 

 

以下是关于mgm相关的命令

 

# ndb_mgm

# ndb_mgm> show 查看各节点情况。  

# ndb_mgm> all report memory 查看各数据节点使用情况  

# ndb_mgm>create nodegroup 3创建数据节点分组   

# mysql> alter online table data_house reorganize partition; 调整分区数据

# ndb_mgm>shutdown关闭节点

# ndb_mgm>exit退出

 

常见问题

 

Mysqld端服务无法启动

 

[root@localhost Desktop]#service mysqld start

Starting mysql.the service quit without updating PID file (/[FAILED]/var/mysql/log/localhost.localdomain.pid).

先去查看日志

#cd /var/mysql/data

#less localhost.localdomain.err

 

 

如果错误是

Fatal error:can’t open and lock privilege tables:Table’mysql.user’ doesn’t exist

解决方法:

终端输入

到mysql目录下/usr/local/mysql

输入

Scripts/mysql_install_db –user=mysql(初始化数据库即可)

其他问题请注意查看问题所在的文件夹权限问题

 

 

测试

 

1、从SQL节点131登录,创建数据库和表,进行简单测试。

mysql> create database tltest ;

mysql> use tltest;

Database changed

mysql> create table test1(id int,name varchar(10)) engine=ndb ;

mysql> insert into test1 values(1,'tl');

mysql> select * from test1 ;

 

 

+------+---------+

 

| id   | name  |

 

+------+---------+

 

|  1 |    tl   |

 

+------+---------+

 

 

 

登陆133节点,查看效果,库,表和数据已经同步。

从133节点插入一条数据,同样登陆134,也能看到数据已经同步。

 

posted @ 2015-07-14 10:33  煙椛ě鯣Ζ泠  阅读(166)  评论(0)    收藏  举报