Debian6配置Mysql集群

jopen 12年前

Mysql版本:mysql-cluster-gpl-7.1.14-linux-i686-glibc23.tar.gz

操作系统:Debian6.0 虚拟机

   192.168.225.131 (MGMD)

   192.168.225.133 (NDBD)

   192.168.225.134 (NDBD)

   192.168.225.135 (MySQLD)

   192.168.225.136 (MySQLD)

    Debian6配置Mysql集群

1.每台虚拟机都安装mysql-cluster

   root@debian:/home/john#groupadd mysql

   root@debian:/home/john#useradd -g mysql mysql

   root@debian:/home/john# tar zxf mysql-cluster-gpl-7.1.14-linux-i686-glibc23.tar.gz

   root@debian:/home/john#mv zxf mysql-cluster-gpl-7.1.14-linux-i686-glibc23 /usr/local/mysql

   root@debian:/home/john# chown mysql:mysql /usr/local/mysql

   root@debian:/home/john#rm mysql-cluster-gpl-7.1.14-linux-i686-glibc23.tar.gz

2.配置MGMD(管理节点192,168.225.131)

创建文件/var/lib/mysql-cluster/config.ini (可以是其他位置或命名)

    [NDBD DEFAULT]
    NoOfReplicas=2    
    DataMemory=100M
    IndexMemory=100M
   
    [TCP DEFAULT]
    portnumber=2202
  
    [NDB_MGMD]
    id=1
    hostname=192.168.225.131
    datadir=/var/lib/mysql-cluster
  
    [NDBD]
    id=2
    hostname=192.168.225.133
    datadir=/usr/local/mysql/ndbdata
  
    [NDBD]
    id=3
    hostname=192.168.225.134
    datadir=/usr/local/mysql/ndbdata
   
    [mysqld]
    id=4
    hostname=192.168.225.135
   
    [mysqld]
    id=5
    hostname=192.168.225.136

3.配置NDBD(数据节点192.168.225.133, 192.168.225.134)

创建/etc/my.cnf文件,内容如下

   [mysqld]
   datadir=/usr/local/mysql/ndbdata

   [mysql_cluster]
   ndb-connectstring  = 192.168.225.131 #指向mgmd

4.配置MySQLD(SQL节点192.168.225.135, 192.168.225.136)

创建/etc/my.cnf文件,内容如下

   [mysqld]
   ndbcluster                    
   ndb-connectstring=192.168.225.131

   [mysql_cluster]
   ndb-connectstring=192.168.225.131

安装System tables

   root@debian:/usr/local/mysql/scripts# mysql_install_db --user=mysql --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

5.以上配置完成无误之后,启动管理节点 192.168.225.131

   root@debian:/usr/local/mysql/bin# ./ndb_mgmd -f /var/lib/mysql-cluster/config.ini

   root@debian:/usr/local/mysql/bin# ./ndb_mgmd

   ndb_mgm> show

   Debian6配置Mysql集群

  初次启动时候,id=2,3,4,5应该都是 not connected。

6.启动NDB节点和MySQL节点

  启动NDB节点

   root@debian:/usr/local/mysql/bin# ./ndbd

  Debian6配置Mysql集群

  启动MySQL节点

   root@debian:/usr/local/mysql/bin# ./mysqld_safe &

  Debian6配置Mysql集群

   此处若启动出错,先查看第4步中 安装System tables是否正确。

7.测试 (MySQLD节点192.168.225.135, 192.168.225.136 上进行)

   root@debian:/usr/local/mysql/bin# ln -s /usr/local/mysql/bin/mysql /usr/bin

   root@debian:/usr/local/mysql/bin# mysql -uroot test

   mysql> create table job(id int auto_increment,name varchar(100)) engine=ndbcluster default charset utf8;

   engine=ndbcluster不能少,不然节点无法同步。

   在两个节点中创建表并插入数据,测试结果节点数据已同步...OK

 

8.后续 停止节点 重启节点

   停止ndbd节点

   Debian6配置Mysql集群

  如果所有的数据节点ndbd都停止,SQL节点mysqld会自动都失去连接,但是mysqld进程依然存活,导致重新恢复ndbd之后,mysqld没法自动恢复

  这时候,需要先将mysqld进程杀死,然后重启mysqld节点。

  Debian6配置Mysql集群

 

值得注意的地方
运行/usr/local/mysql/scripts/mysql_install_db --user=mysql

参数--basedir=/usr/local/mysql --datadir=/usr/local/mysql/data & (这点非常重要)