Mysql分布式集群
一、准备
集群:
192.168.1.191 管理节点
192.168.1.192 管理节点
192.168.1.193 数据节点和API节点
192.168.1.194 数据节点和API节点
安装包:mysql-cluster-gpl-7.5.5-linux-glibc2.5-x86_64.tar.gz
二、安装
安装mysql管理节点
cd mysql-cluster-gpl-7.5.6-linux-glibc2.5-x86_64/ sudo cp bin/ndb_mgm* /usr/local/bin
cd /usr/local/bin
sudo mkdir /var/lib/mysql-cluster
sudo mkdir /usr/local/mysql
sudo vi /var/lib/mysql-cluster/config.ini
sudo chmod -r 777 /var/lib/mysql-cluster/
sudo chmod -R 777 /usr/local/mysql/
config.ini的如下:
[ndbd default] NoOfReplicas=2 DataMemory=512M IndexMemory=18M [ndb_mgmd] HostName=192.168.1.191 DataDir=/var/lib/mysql-cluster
[ndb_mgmd]
HostName=192.168.1.192
DataDir=/var/lib/mysql-cluster
[ndbd] HostName=192.168.1.193 DataDir=/var/lib/mysql-cluster [ndbd] HostName=192.168.1.194 DataDir=/var/lib/mysql-cluster
191上执行:/usr/local/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial
192上执行:/usr/local/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini
成功如下:
测试:
cd /usr/local/bin
ndb_mgm
show
#为了保证数据节点等和管理节点通信 需要开启 1186 端口
安装mysql数据节点
192.168.1.193 数据节点
192.168.1.194 数据节点
sudo groupadd mysql sudo useradd -g mysql -s /bin/false mysql
sudo mv mysql-cluster-gpl-7.5.6-linux-glibc2.5-x86_64/ /usr/local/mysql
sudo mkdir /var/lib/mysql-cluster
sudo chown root:mysql /var/lib/mysql-cluster
sudo chmod -R 777 /var/lib/mysql-cluster/
sudo vi /etc/my.cnf
my.cnf内容如下:
[client]
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
ndbcluster
ndb-connectstring=192.168.1.191
ndb-connectstring=192.168.1.192
[mysql_cluster]
ndb-connectstring=192.168.1.191
ndb-connectstring=192.168.1.192
cd /usr/local/mysql/
bin/ndbd --initial #数据节点初始化
测试:在管理节点上
cd /usr/local/bin
ndb_mgm
show
安装API(mysqld)节点
初始化mysql
cd /usr/local/mysql/
./bin/mysqld --initialize
会生成临时密码,记好临时密码,之后需要用到
support-files/mysql.server start #启动mysql
support-files/mysql.server status #查看mysql状
测试:在管理节点上
cd /usr/local/bin
ndb_mgm
show
最后的设置:在管理节点上
cd /usr/local/bin ndb_mgm
shutdown #关掉 关掉管理节点和数据节点的服务
cd /usr/local/mysql
./bin/mysql -u root -p #随后输入密码 密码是之前生成的临时随机密码
修改root 密码,改远程访问,外部连接时 需要开启 3306端口
SET PASSWORD = PASSWORD('your new password'); use mysql; update user set host = '%' where user = 'root'; #然后改远程访问FLUSH
PRIVILEGES;
启动集群:
ps:在数据节点没有全部启动之前, 不要启动API集群
#启动管理节点 /usr/local/bin/ ndb_mgmd #启动数据节点 cd /usr/loca/mysql/ ./bin/ndbd #启动api节点 cd /usr/loca/mysql/ ./support-files/mysql.server start
测试:
test同步成功,test01同步失败
默认数据库自动同步,创建表的时候主要选择数据引擎选择 ndbcluster 才会同步
暴力测试:
各种 kill 进程 ,只要有一个数据节点存活,数据都会同步和保存,当然前提是只要有个API节点存活,才可以访问。