[Linux] MySQL Cluster 集群安装


管理节点

mysql-mgm

192.168.1.150

数据节点 1

mysql-data01

192.168.1.151

数据节点 2

mysql-data02

192.168.1.152

SQL 节点 1

mysql-01

192.168.1.153

SQL 节点 2

mysql-02

192.168.1.154

软件下载地址:

http://mirrors.sohu.com/mysql

 

1、初始化系统

# 每个节点都操作

#systemctl disable firewalld    #

 

# vi /etc/selinux/config

SELINUX=disabled

 

# hostnamectl set-hostname xxx

 

# cd/usr/local/src/

# tar -zxf mysql-cluster-gpl-7.6.2-linux-glibc2.12-x86_64.tar.gz

# mv mysql-cluster-gpl-7.6.2-linux-glibc2.12-x86_64 /usr/local/mysql

# reboot

 

2、配置管理节点

# mkdir /var/lib/mysql-cluster

# vi /var/lib/mysql-cluster/config.ini

[ndbd default]

# Options affecting ndbd processes on all data nodes:

NoOfReplicas=2    # Number of replicas

DataMemory=80M    # How much memory to allocate for data storage

IndexMemory=18M   # How much memory to allocate for index storage

#ServerPort=2202   # This the default value; however, you can use any

 

[ndb_mgmd]

# Management process options:

NodeId=1

HostName=192.168.1.150           # Hostname or IP address of MGM node

DataDir=/var/lib/mysql-cluster  # Directory for MGM node log files

 

[ndbd]

HostName=192.168.1.151           # Hostname or IP address

NodeId=2                      # Node ID for this data node

DataDir=/usr/local/mysql/data   # Directory for this data node's data files

 

[ndbd]

# Options for data node "B":

HostName=192.168.1.152          # Hostname or IP address

NodeId=3                        # Node ID for this data node

DataDir=/usr/local/mysql/data   # Directory for this data node's data files

 

[mysqld]

# SQL node options:

NodeId=4

HostName=192.168.1.153           # Hostname or IP address

                                # (additional mysqld connections can be

                                # specified for this node for various

                                # purposes such as running ndb_restore)

 

[mysqld]

NodeId=5

HostName=192.168.1.154

 

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

# chmod +x /usr/local/bin/ndb_mgm*

 

3、配置数据节点

# groupadd mysql && useradd -g mysql mysql

# vi /etc/my.cnf

[mysqld]

basedir=/usr/local/mysql

datadir=/usr/local/mysql/data

socket=/usr/local/mysql/sock/mysql.sock

user=mysql

symbolic-links=0

ndbcluster

ndb-connectstring=192.168.1.150

 

[mysqld_safe]

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

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

 

[mysql_cluster]

ndb-connectstring=192.168.1.150

 

# mkdir /usr/local/mysql/sock

# cd /usr/local/mysql

# bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql--datadir=/usr/local/mysql/data

# chown -R mysql.mysql /usr/local/mysql

 

4、配置 SQL 节点

# groupadd mysql && useradd -g mysql mysql

# vi /etc/my.cnf

[client]

socket=/usr/local/mysql/sock/mysql.sock

 

[mysqld]

ndbcluster

datadir=/usr/local/mysql/data

socket=/usr/local/mysql/sock/mysql.sock

ndb-connectstring=192.168.1.150

 

[mysql_cluster]

ndb-connectstring=192.168.1.150

 

# mkdir /usr/local/mysql/sock

# cd /usr/local/mysql

# bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql--datadir=/usr/local/mysql/data

# chown-R mysql.mysql /usr/local/mysql

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

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

# chkconfig --add mysql.server

 

5Cluster 启动

# 启动管理节点,首次启动需要+ --initial

# ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial 

 

# 启动数据节点,首次启动需要+ --initial

# /usr/local/mysql/bin/ndbd --initial

 

# 启动 SQL 节点

# /usr/local/mysql/bin/mysqld_safe --user=mysql &

 

# 查看集群状态

# 管理节点上操作:

[root@mysql-mgm ~]# ndb_mgm

-- NDB Cluster -- Management Client --

ndb_mgm> show

Connected to Management Server at: localhost:1186

Cluster Configuration

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

[ndbd(NDB)]     2 node(s)

id=2    @192.168.1.151  (mysql-5.7.18 ndb-7.6.2, Nodegroup: 0, *)

id=3    @192.168.1.152  (mysql-5.7.18 ndb-7.6.2, Nodegroup: 0)

 

[ndb_mgmd(MGM)] 1 node(s)

id=1    @192.168.1.150  (mysql-5.7.18 ndb-7.6.2)

 

[mysqld(API)]   2 node(s)

id=4    @192.168.1.153  (mysql-5.7.18 ndb-7.6.2)

id=5    @192.168.1.154  (mysql-5.7.18 ndb-7.6.2)

 

6、测试

# 先将 SQL 节点的数据库密码修改为相同的

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

# /usr/local/mysql/bin/mysql_secure_installation

 

# SQL 节点 1 上新建库,并插入数据

# mysql -uroot -p

mysql> create database aa;

 

mysql> use aa;

 

mysql> create table student(id int(10) primary key auto_increment,name varchar(30),age tinyint(2)) engine=ndb;

 # 数据库表的引擎必须为 NDB,不然就同步失败了   可以用 show create table 表名来查看引擎

 

mysql> insert into student (id,name,age) value(321281,"mzh",18);

 

mysql> quit

Bye

 

# SQL 节点 2 查看是否同步

mysql> show databases;

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

| Database           |

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

| information_schema |

| aa                 |

| mysql              |

| ndbinfo            |

| performance_schema |

| sys                |

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

6 rows in set (0.00 sec)

 

mysql> use aa;

 

mysql> show tables;

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

| Tables_in_aa |

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

| student      |

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

1 row in set (0.01 sec)

 

mysql> select * from student;

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

| id     | name | age  |

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

| 321281 | mzh  |   18 |

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

1 row in set (4.27 sec)

 

# 做到这里,已经看到可以同步了。然后我们再模拟 SQL 节点1 宕机了,在SQL 2 上插入新的数据,再SQL 1 开机,查看数据是否会同步。

 

# SQL 1上操作:

# /etc/rc.d/init.d/mysql.server stop

# ps -ef| grep mysql

 

# SQL 2 操作:

mysql> insert into student (id,name,age) value(12121,"hp",19);

mysql> select * from student;

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

| id     | name | age  |

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

|  12121 | hp   |   19 |

| 321281 | mzh  |   18 |

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

2 rows in set (0.00 sec)

 

# 再在 SQL1 上查看是否同步

# /etc/rc.d/init.d/mysql.server start

mysql> select * from student;

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

| id     | name | age  |

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

|  12121 | hp   |   19 |

| 321281 | mzh  |   18 |

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

2 rows in set (0.00 sec)

 

7Cluster 关闭

# 管理节点操作:

# ndb_mgm -e shutdown

Connected to Management Server at: localhost:1186

3 NDB Cluster node(s) have shutdown.

Disconnecting to allow management server to shutdown.

 

# SQL 节点操作:

# /etc/rc.d/init.d/mysql.server stop


 Over ~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值