【技术】关于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 (目录和文件没有请新建,添加以下内容)
- [NDBD DEFAULT]
- NoOfReplicas=2
- [TCP DEFAULT]
- portnumber=3306
- [NDB_MGMD]
- #设置管理节点服务器
- nodeid=1
- HostName=192.168.191.132 (管理节点服务器ip地址)
- DataDir=/var/mysql/data
- [NDBD]
- nodeid=2
- HostName=192.168.191.130 (ndbd点ip地址)
- DataDir=/var/mysql/data
- [NDBD]
- nodeid=3
- HostName=192.168.191.131 (ndbd点ip地址)
- DataDir=/var/mysql/data
- [MYSQLD]
- nodeid=4
- HostName=192.168.191.133 (mysqld节点ip地址)
- [MYSQLD]
- nodeid=5
- HostName=192.168.191.134 (mysqld节点ip地址)
- #必须有空的mysqld节点,不然数据节点断开后启动有报错
- [MYSQLD]
- nodeid=6
- [mysqld]
- 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,也能看到数据已经同步。

浙公网安备 33010602011771号