CentOS-7 installing MySQL Cluster

Source: Internet
Author: User
Tags node server

Installation Requirements

Installation Environment: CENTOS-7
Installation method: Source code compiled and installed
Software Name: mysql-cluster-gpl-7.3.7-linux2.6-x86_64.tar.gz
: http://mysql.mirror.kangaroot.net/Downloads/
Software Installation Location:/usr/local/mysql
Data storage location:/var/mysql/data
Log storage location:/var/mysql/logs

Cluster design

First of all, the design of the cluster installation allocation, I need 5 servers, the server allocation is as follows:
Management node: 192.168.1.214
SQL Node 1:192.168.1.215
SQL Node 2:192.168.1.216
Data node 1:192.168.1.217
Data node 2:192.168.1.218
The device is connected as shown in the following way:

Note:
at present, the problem with this design is that the management node is a single point, 214 hangs off after the entire cluster will be paralyzed, regardless of this problem, first of all, this simple MySQL cluster first build up.

Check the installed MySQL

Check the MySQL information that is already installed in the system, and do the following:

[Email protected]/]# Rpm-qa | grep MySQL
[[Email protected]/]# service MySQL status

If you have installed a different version of MySQL, please uninstall the following:

[[email protected]/]#/etc/init.d/mysqld stop//Turn off the current MySQL service
[Email protected]/]# Ps-ef | grep mysql//check if MySQL is off
#如果没关闭, execute the kill-9 port number
#执行删除
Rpm-e--allmatches--nodeps MySQL mysql-server
Rm-rf/var/lib/mysql//Remove MySQL installation directory
Management node Management node installation

Install the Management node (192.168.15.231)

[[email protected]/]# Groupadd MySQL
[[email protected]/]# useradd mysql-g MySQL
[Email protected]/]# cd/usr/local
[Email protected] local]# tar-zxv-f mysql-cluster-gpl-7.2.6-linux2.6-x86_64.tar.gz
[[Email protected] local]# mv mysql-cluster-gpl-7.2.6-linux2.6-x86_64 MySQL
[[email protected] local]# chown-r mysql:mysql MySQL
[[Email protected] local]# CD MySQL
[Email protected] mysql]# scripts/mysql_install_db--user=mysql

Manage node Configuration

[Email protected] ~]# Mkdir/var/lib/mysql-cluster
[Email protected] ~]# Cd/var/lib/mysql-cluster
[Email protected] mysql-cluster]# VI +/var/lib/mysql-cluster/config.ini

In Config.ini, add the following:

[NDBD DEFAULT]
Noofreplicas=1
[TCP DEFAULT]
portnumber=3306

[NDB_MGMD]
#设置管理节点服务器
hostname=192.168.15.231
Datadir=/var/mysql/data

[NDBD]
#设置存储节点服务器 (NDB node)
hostname=192.168.15.234
Datadir=/var/mysql/data

[NDBD]
#第二个NDB节点
hostname=192.168.15.235
Datadir=/var/mysql/data

[MYSQLD]
#设置SQL节点服务器
hostname=192.168.15.232
[MYSQLD]
#第二个SQL节点
hostname=192.168.15.233

Management node Startup

[Email protected] ~]#/usr/local/mysql/bin/ndb_mgmd-f/var/lib/mysql-cluster/config.ini
[Email protected] ~]# Mkdir/var/mysql/logs
[Email protected] ~]# NETSTAT-LNTPU

[[Email protected] ~] #cd/usr/local/mysql/bin

[[Email protected] ~] #cp./ndb_mgm/usr/local/bin/

[[Email protected] ~] #cp./ndb_mgmd/usr/local/bin/

See TCP 0 0 0.0.0.0:1186 open Instructions start normal
Open port 1186 on the Management node server

Management node Inspection

Perform the following actions:

[[email protected]/]# NDB_MGM//admin node

--NDB Cluster--Management Client--
Ndb_mgm> Show

Connected to Management Server at:localhost:1186
Cluster Configuration
---------------------
[NDBD (NDB)] 2 node (s)
id=2 (not connected, accepting connect from 192.168.15.234)
Id=3 (not connected, accepting connect from 192.168.15.235)

[NDB_MGMD (MGM)] 1 node (s)
Id=1 @192.168.15.231 (mysql-5.5.22 ndb-7.2.6)

[Mysqld (API)] 2 node (s)
Id=4 (not connected, accepting connect from 192.168.15.232)
Id=5 (not connected, accepting connect from 192.168.15.233)

Management node shutdown

[Email protected]/]#/USR/LOCAL/MYSQL/BIN/NDB_MGM-E shutdown

#成功后终端打印出以下信息
Connected to Management Server at:192.168.15.236:1186
3 NDB Cluster node (s) has shutdown.
Disconnecting to allow Management Server to shutdown.

Data node Data node installation

Data node 1:192.168.15.234
Data node 2:192.168.15.235

[[email protected]/]# Groupadd MySQL
[[email protected]/]# useradd mysql-g MySQL
[Email protected]/]# cd/usr/local
[Email protected] local]# tar-zxv-f mysql-cluster-gpl-7.2.6-linux2.6-x86_64.tar.gz
[[Email protected] local]# mv mysql-cluster-gpl-7.2.6-linux2.6-x86_64 MySQL
[[email protected] local]# chown-r mysql:mysql MySQL
[[Email protected] local]# CD MySQL
[Email protected] mysql]# scripts/mysql_install_db--user=mysql
[email protected] mysql]# CP support-files/my-medium.cnf/etc/my.cnf
[email protected] mysql]# CP support-files/mysql.server/etc/init.d/mysqld

CP./ndb_mgmd/usr/local/bin/

Data node Configuration

Configure the data node to perform the following actions:

[Email protected] mysql]# Mkdir/var/mysql/data
[Email protected] mysql]# Mkdir/var/mysql/logs
[Email protected] mysql]# VI/ETC/MY.CNF

Append the following to the file:

[MYSQLD]
Ndbcluster
ndb-connectstring=192.168.15.231
[Mysql_cluster]
ndb-connectstring=192.168.15.231
[NDB_MGM]
connect-string=192.168.15.231
Data node Startup

When you start here, the Management node server firewall must have the 1186,3306 port turned on.
Note: only the –initial parameter is added when the NDBD is restarted on the first boot or after a backup/restore or configuration change!
The first boot is as follows:

[Email protected] mysql]#/USR/LOCAL/MYSQL/BIN/NDBD--initial
2013-01-30 13:43:53 [NDBD] INFO--Angel connected to ' 192.168.15.231:1186 '
2013-01-30 13:43:53 [NDBD] INFO--Angel allocated Nodeid:2

Normal Start Mode:

[Email protected] mysql]#/USR/LOCAL/MYSQL/BIN/NDBD
Data node shutdown

[[email protected]/]#/etc/rc.d/init.d/mysqld stop
Or
[[email protected] mysql]#/etc/init.d/mysql stop
Shutting down MySQL. success!

/usr/local/mysql/bin/mysqladmin-uroot shutdown

SQL node installation SQL node installation

The SQL node and the storage node (NDB node) are installed the same, performing the following actions;
SQL Node 1:192.168.15.232
SQL Node 2:192.168.15.233

[[email protected]/]# Groupadd MySQL
[[email protected]/]# useradd mysql-g MySQL
[Email protected]/]# cd/usr/local
[Email protected] local]# tar-zxv-f mysql-cluster-gpl-7.2.6-linux2.6-x86_64.tar.gz
[[Email protected] local]# mv mysql-cluster-gpl-7.2.6-linux2.6-x86_64 MySQL
[[email protected] local]# chown-r mysql:mysql MySQL
[[Email protected] local]# CD MySQL
[Email protected] mysql]# scripts/mysql_install_db--user=mysql
[email protected] mysql]# CP support-files/my-medium.cnf/etc/my.cnf
[email protected] mysql]# CP support-files/mysql.server/etc/init.d/mysqld
SQL Node Configuration

Perform the following actions:

[[email protected] mysql]# mkdir/var/mysql/data//Create a folder to store data
[[email protected] mysql]# mkdir/var/mysql/logs//Create a folder for storing logs
[[email protected] mysql]# VI/USR/LOCAL/MYSQL/MY.CNF//Modify configuration file

Append the following content:

[MYSQLD]
Ndbcluster
ndb-connectstring=192.168.15.231
[Mysql_cluster]
ndb-connectstring=192.168.15.231
[NDB_MGM]
connect-string=192.168.15.231
SQL Node Startup

Perform the following actions:

[[Email protected] mysql]# service mysqld start
Starting MySQL. success!
SQL node shutdown

The most direct way:

[Email protected] mysql]#/usr/local/mysql/bin/mysqladmin-uroot shutdown

[[email protected]/]#/etc/rc.d/init.d/mysqld stop
Or
[[email protected] mysql]#/etc/init.d/mysql stop
Shutting down MySQL. success!

Functional Testing

View service status on the Management node (192.168.15.231)

[Email protected] ~]#/USR/LOCAL/MYSQL/BIN/NDB_MGM

--NDB Cluster--Management Client--
Ndb_mgm> Show
Cluster Configuration
---------------------
[NDBD (NDB)] 2 node (s)
id=2 @192.168.15.234 (mysql-5.5.22 ndb-7.2.6, nodegroup:0, Master)
Id=3 @192.168.15.235 (mysql-5.5.22 ndb-7.2.6, nodegroup:1)

[NDB_MGMD (MGM)] 1 node (s)
Id=1 @192.168.15.231 (mysql-5.5.22 ndb-7.2.6)

[Mysqld (API)] 2 node (s)
Id=4 @192.168.15.232 (mysql-5.5.22 ndb-7.2.6)
Id=5 @192.168.15.233 (mysql-5.5.22 ndb-7.2.6)

You can see that the data node, the management node, and the SQL node are all normal.
Note :

    1. When building a table, be sure to use ENGINE=NDB or Engine=ndbcluster to specify that the NDB cluster storage engine be used, or change the table's storage engine with the ALTER TABLE option.
    2. The NDB table must have a primary key, so you must define a primary key when you create the table, otherwise the NDB storage engine will automatically generate the implied primary key.
    3. The User Rights table of the SQL node is still saved with the MyISAM storage engine, so the MySQL user created in a SQL node can only access this node, and if you want to access another SQL node with the same user, you need to append the user to the corresponding SQL node. Although the MySQL Cluster7.2 version began to provide "user rights sharing".
Data Synchronization Testing

Create the relevant database on one data node and then go to another data node to see if the data is synchronized.

    1. Section 1 Step:

Add data on SQL Node 1 (192.168.15.232):

[[email& Nbsp;protected] mysql]# /etc/rc.d/init.d/mysqld status                //Verify that MySQL is running
[[email protected] mysql]#/etc/rc.d/init.d/ Mysqld start                   //start MySQL
[[email protected] mysql]#/usr/local/mysql/bin/mysql-u root-p
Enter Password:
mysql> show databases;
mysql> CREATE DATABASE testdb2;
Mysql> use TESTDB2;
mysql> CREATE TABLE td_test2 (i INT) engine=ndb;
//The engine of the database table must be specified here as Ndbcluster, same as the name in the configuration file
Mysql> INSERT into Td_test2 () VALUES (1);
Mysql> INSERT into Td_test2 () VALUES (152);
mysql> SELECT * from Td_test2;
    1. Section 2 Step:

Go to view data on SQL Node 2 (192.168.15.233)

mysql> use TESTDB2;
Database changed
Mysql> SELECT * from Td_test2;
+------+
| I |
+------+
| 126 |
| 1 |
+------+
2 rows in Set (0.01 sec)

The engine that looks at the table is not NDB:

>show CREATE TABLE Td_test2;
    1. Section 3 Step:

Reverse test, add Data on SQL Node 2 (192.168.15.233):

mysql> CREATE DATABASE BB;
mysql> use BB;
Mysql> CREATE TABLE td_test3 (i INT) engine=ndb;
Mysql> INSERT into Td_test3 () VALUES (98);
Mysql> SELECT * from Td_test3;

View data on SQL Node 1 (192.168.15.232):

mysql> use BB;
Database changed
Mysql> SELECT * from Td_test3;
+------+
| I |
+------+
| 98 |
+------+
1 row in Set (0.00 sec)
Shutting down the cluster

Close the Management node first, and then close SQL nodes and data nodes.

Cluster start operation sequence

To start the cluster again, execute in the following order:
Management Node - Data Node –> SQL node Note: do not add the "–initial" parameter when starting the data node.

Errors in installation and error startup in the test

Error message:
Can ' t connect to local MySQL server through socket '/tmp/mysql.sock ' (2)
Solutions 1 (port occupancy) NETSTAT-ANP |grep 3306
Kill-9 Process Number
Solutions 1 (Permissions issues) [Email protected] mysql]# chown-r mysql:mysql/var/mysql

CentOS-7 installing MySQL Cluster

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.