phper,PHP学习_PHP技术_PHP网站建设_PHP程序员专注于PHP技术研究及学习

Adophper » 数据库 » mysql-cluster安装步骤

mysql-cluster安装步骤

此文被围观1196日期: 2015-11-06 分类 : 数据库  标签:  ···

参考URL:http://wenku.baidu.com/link?url=AewP4ggf4PFxdsDJnqq-8f8nwD__7Ci1HaRw7HSQ25KS5LVWxhzq9TdDmxRqUsu0koAll0Z6-Uu_eLoU2rwCORWZU2azSZVMSklCLyEeMMO


1、下载mysql-cluster-gpl-7.4.8-linux-glibc2.5-x86_64压缩包

#wget http://cdn.mysql.com//Downloads/MySQL-Cluster-7.4/mysql-cluster-gpl-7.4.8-linux-glibc2.5-x86_64.tar.gz


2、解压

#tar -zxvf mysql-cluster-gpl-7.4.8-linux-glibc2.5-x86_64.tar.gz


3、新建文件夹 #mkdir -p /usr/local/mysql


4、复制文件到mysql文件夹下  #mv mysql-cluster-gpl-7.4.8-linux-glibc2.5-x86_64/. /usr/local/mysql


5、添加用户组及用户  #groupadd mysql;useradd -g mysql mysql


6、设置mysql文件所有者  #cd /usr/local/;chown -R mysql.mysql mysql;chgrp -R mysql mysql;


7、安装MySQL之前,必须创建 MySQL 数据目录和初始化授权表,授权表定义了初始 MySQL 用户账户和访问权限


#cd mysql;scripts/mysql_install_db --user=mysql

8、添加启动脚本


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

=====centos=====

#chmod +x /etc/init.d/mysql

#chkconfig --add mysqld 

#chkconfig --level 345 mysqld on

=====ubuntu=====

#chmod +x /etc/init.d/mysql;

#cd /etc/init.d/;update-rc.d mysql defaults


9、集群目录

建立集群所需目录:命令:mkdir /var/lib/mysql-cluster;mkdir /var/lib/mysql;mkdir /usr/local/mysql/mysql-cluster;mkdir /etc/mysql


官网地址:http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-install-linux-binary.html

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

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

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

#cd /usr/local/bin

#chmod +x ndb*

这步很重要:

建立硬链接,软链接试过没啥效果,暂时定为硬链接:   

cd /usr/local/mysql/bin;

ln ndbd /usr/bin/;

ln ndb_mgm /usr/bin/;

ln ndb_mgmd /usr/bin/;

ln mysql /usr/bin/;

ln mysqladmin /usr/bin/;

ln mysqldump /usr/bin/;   

解析:ndbd、ndb_mgm、ndb_mgmd是集群需要用的。mysql、mysqladmin、mysqldump是mysql常用命令。


10、管理节点 192.168.3.13


NDB节点:192.168.3.13; 192.168.3.18


SQL节点:192.168.3.13; 192.168.3.18



11、修改mysql配置文件,集群的机子都要加。命令:vi /etc/mysql/my.cnf


[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

symbolic-links=0

default-storage-engine=NDBCLUSTER

ndbcluster

ndb-connectstring=192.168.3.13

[mysql_cluster]

ndb-connectstring=192.168.3.13

[mysql_safe]

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

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

[client] 

socket=/var/lib/mysql/mysql.sock


12、在192.168.2.13上新建一个配置文件,配置如下:vi /etc/mysql/config.ini


[NDBD DEFAULT]

NoOfReplicas=2

MaxNoOfConcurrentOperations=10000

DataMemory=2G

IndexMemory=1G

TimeBetweenWatchDogCheck=30000

DataDir=/var/lib/mysql-cluster

MaxNoOfConcurrentOperations=256K

MaxNoOfConcurrentTransactions=256K

MaxNoOfTables=1024

MaxNoOfAttributes=24760

MaxNoOfOrderedIndexes=10000

StartPartialTimeout=100

StartPartitionedTimeout=100

ArbitrationTimeout=5000

TransactionDeadlockDetectionTimeout=5000

HeartbeatIntervalDbDb=5000

StopOnError=0

[MYSQLD DEFAULT]

[NDB_MGMD DEFAULT]

DataDir=/var/lib/mysql-cluster

[TCP DEFAULT]

portnumber=2202

[NDB_MGMD]

NodeId=1

HostName=192.168.3.13

DataDir=/var/lib/mysql-cluster

[NDBD]

NodeId=2

HostName=192.168.3.13

DataDir=/var/lib/mysql-cluster

[NDBD]

NodeId=3

HostName=192.168.3.18

DataDir=/var/lib/mysql-cluster

[MYSQLD]

HostName=192.168.3.13

ArbitrationRank=2

[MYSQLD]

HostName=192.168.3.18

ArbitrationRank=2

[MYSQLD]

[MYSQLD]


13、启动管理节点  ndb_mgmd -f /etc/mysql/config.ini


14、启动数据节点 (host1 、host2)

【首次启动 begin 】  首次启动必须加 --ndb-nodeid=2 --initial-start

# /usr/local/mysql/bin/ndbd  --ndb-nodeid=2 --initial-start  

# /usr/local/mysql/bin/ndbd  --ndb–nodeid=3 --initial-start  

【首次启动 end】

【后续启动 begin】 后续启动不能加  --initial-start 否则,原来的数据将丢失

# /usr/local/mysql/bin/ndbd  

# /usr/local/mysql/bin/ndbd  

【后续启动 end】


15、启动SQL节点 (host1、host2) 指定配置文件  mysqld_safe --defaults-file=/etc/mysql/my.cnf

# /etc/init.d/mysqld start


错误:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (

#chown -R mysql:mysql /var/lib/mysql

错误:/etc/init.d/mysqld start

...... * The server quit without updating PID file (/var/lib/mysql/bogon.pid).

重新安装 cd /usr/local/mysql;scripts/mysql_install_db --user=mysql;


16、查看集群状态

# ndb_mgm

--NDB Cluster --Management Client --

ndb_mgm>show

ndb_mgm>quit


17、测试集群

/usr/local/mysql/bin/mysql -uroot -p

mysql>use test;

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

mysql>insert into t2 values(1,'beijing');

mysql>insert into t2 values(2,'tianjing');

进入另外一个sql节点,应可以看到相应数据

a)在任意SQL节点(192.168.1.5 / 192.168.1.8)上关闭其中一个mysql服务,在另外一个上进行的数据库操作,等关闭的mysql服务启动后自动合并更新

使用ndb_mgn -e show 命令将在mysqld[API]项目中看到停止的mysql所在机器

b)在任意节点(192.168.1.5 / 192.168.1.8)上断开节点(把网线/ifdown eth0),在另外一个上进行的数据库操作,等断开的数据节点(连接网线 /ifup eth0)链接成功后自动合并更

使用ndb_mgn -e show 命令将在各个项目中看到停止的节点所在机器

建立数据表时,要加上 engine=ndbcluster 不然不能同步    

创建数据库表,与没有使用 Cluster的MySQL相比,在MySQL Cluster内操作数据的方式没有太大的区别。

执行这类操作时应记住两点:

    表必须用ENGINE=NDB或ENGINE=NDBCLUSTER选项创建,或用ALTER TABLE选项更改,以使用NDB Cluster存储引擎在 Cluster内复制它们。如果使用mysqldump的输出从已有数据库导入表,

可在文本编辑器中打开SQL脚本,并将该选项添加到任何表创建语句,或用这类选项之一替换任何已有的ENGINE(或TYPE)选项。

    另外还请记住,每个NDB表必须有一个主键。如果在创建表时用户未定义主键,NDB Cluster存储引擎将自动生成隐含的主键。(注释:该隐含 键也将占用空间,就像任何其他的表索引一

样。由于没有足够的内存来容纳这些自动创建的键,出现问题并不罕见)。


18、安全关闭

要想关闭 Cluster,可在MGM节点所在的机器上,在Shell中简单地输入下述命令:

[db1~]root# /usr/local/mysql/bin/ndb_mgm -e shutdown

ndbdstop

运行以下命令关闭SQL节点的mysqld服务:

[db2~]root# /usr/local/mysql/bin/mysqladmin -uroot shutdown


本站使用ThinkPHP框架开发读图网主题,目前托管在阿里云,图片由读图网提供. 蜀ICP备12031064号

Copyright © 2011-2017adophper.com All Rights Reserved.