Home Database Mysql Tutorial Detailed explanation of MySQL-Cluster cluster construction (based on manual compilation of installation packages)

Detailed explanation of MySQL-Cluster cluster construction (based on manual compilation of installation packages)

Mar 14, 2017 pm 04:41 PM

Recently, due to being very busy at work, I haven’t updated my blog for a while. Today I will bring you an article on how to build a MySQL Cluster cluster. Okay, let’s go directly to the topic.

First of all, we need to uninstall the MySQL originally installed on the server. For details, please refer to the blog post "MySQL-Completely Uninstall MySQL Code Example under CentOS". At the same time, enter the following command on the command line to install the preparation environment:

yum -y install wget gcc-c++ ncurses ncurses-devel cmake make perl bison openssl openssl-devel gcc
* libxml2 libxml2-devel curl-devel libjpeg* libpng* freetype*
Copy after login

This article will build a simplest MySQL Cluster system. All commands in the configuration method are run as the root account. This MySQL Cluster contains one management node, two data nodes, and two SQL nodes. These five nodes will be installed on five virtual machines respectively. The names and IPs of the virtual machines are as follows:

#192.168.124.142##Data nodeNode

#Management node

mysql-mgm

##192.168.124.141

##Data node

1

mysql-ndbd-1

2

mysql-ndbd-2

#192.168.124.143

##SQL
Node

1mysql-sql-1

192.168.124.144

##SQL

2

mysql-sql-2

192.168.124.145

一、公共配置

请在三个虚拟机上分别配置此处的配置项。


1. 安装虚拟机

虚拟机操作系统安装CentOS 6.5的x86_64版本,使用NAT网络,并且还要安装vmware-tools,具体安装方法此处不详述。

2. 拷贝mysql cluster

下载以下版本的MySQL-Cluster:

http://dev.mysql.com/Downloads/MySQL-Cluster-7.3/mysql-cluster-gpl-7.3.4-linux-glibc2.5-x86_64.tar.gz

下载得到的压缩包拷贝至虚拟机的/root/Downloads目录,然后在shell中运行以下命令:

cd /root/Downloads
tar -xvzf mysql-cluster-gpl-7.3.4-linux-glibc2.5-x86_64.tar.gz
mv mysql-cluster-gpl-7.3.4-linux-glibc2.5-x86_64 /usr/local/mysql
Copy after login

3. 关闭安全策略

关闭iptables防火墙(或者打开防火墙的1186、3306端口),在Shell中运行以下命令:

chkconfig --level 35 iptables off
Copy after login

关闭SELinux,在Shell中运行以下命令:

gedit /etc/selinux/config
Copy after login

将config文件中的SELINUX项改为disabled,修改后的config文件的内容如下:


# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted
Copy after login

最后重启系统

二、配置管理结点(192.168.124.141)

1. 配置config.ini配置文件

在shell中运行以下命令:


mkdir /var/lib/mysql-cluster
cd /var/lib/mysql-cluster
gedit config.ini
Copy after login

配置文件config.ini内容如下:


[ndbd default]
NoOfReplicas=2
DataMemory=80M
IndexMemory=18M
[ndb_mgmd]
NodeId=1
hostname=192.168.124.141
datadir=/var/lib/mysql-cluster
[ndbd]
NodeId=2
hostname=192.168.124.142
datadir=/usr/local/mysql/data
[ndbd]NodeId=3hostname=192.168.124.143datadir=/usr/local/mysql/data
[mysqld]NodeId=4hostname=192.168.124.144
[mysqld]
NodeId=5
hostname=192.168.124.145
Copy after login

2. 安装管理结点

安装管理节点,不需要mysqld二进制文件,只需要MySQL Cluster服务端程序(ndb_mgmd)和监听客户端程序(ndb_mgm)。在shell中运行以下命令:


cp /usr/local/mysql/bin/ndb_mgm* /usr/local/bin
cd /usr/local/bin
chmod +x ndb_mgm*
Copy after login

三、配置数据结点(192.168.124.142、192.168.124.143)

1. 添加mysql组和用户

在shell中运行以下命令:


groupadd mysql
useradd -g mysql mysql
Copy after login
Copy after login

2. 配置my.cnf配置文件

在shell中运行以下命令:


gedit /etc/my.cnf
Copy after login
Copy after login

配置文件my.cnf的内容如下:


[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/sock/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[mysql_cluster]
ndb-connectstring=192.168.124.141
Copy after login

3. 创建系统数据库

在shell中运行以下命令:


cd /usr/local/mysql
mkdir sock
scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
Copy after login
Copy after login

4. 设置数据目录

在shell中运行以下命令:


chown -R root .
chown -R mysql.mysql /usr/local/mysql/data
chown -R mysql.mysql /usr/local/mysql/sock
chgrp -R mysql .
Copy after login
Copy after login

5. 配置MySQL服务

在shell中运行以下命令:


cp support-files/mysql.server /etc/rc.d/init.d/
chmod +x /etc/rc.d/init.d/mysql.server
chkconfig --add mysql.server
Copy after login
Copy after login

四、配置SQL结点(192.168.124.144、192.168.124.145)

1. 添加mysql组和用户

在shell中运行以下命令:


groupadd mysql
useradd -g mysql mysql
Copy after login
Copy after login

2. 配置my.cnf配置文件

在shell中运行以下命令:


gedit /etc/my.cnf
Copy after login
Copy after login

配置文件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.124.141
[mysql_cluster]
ndb-connectstring=192.168.124.141
Copy after login

3. 创建系统数据库

在shell中运行以下命令:


cd /usr/local/mysql
mkdir sock
scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
Copy after login
Copy after login

4. 设置数据目录

在shell中运行以下命令:


chown -R root .
chown -R mysql.mysql /usr/local/mysql/data
chown -R mysql.mysql /usr/local/mysql/sock
chgrp -R mysql .
Copy after login
Copy after login

5. 配置MySQL服务

在shell中运行以下命令:


cp support-files/mysql.server /etc/rc.d/init.d/
chmod +x /etc/rc.d/init.d/mysql.server
chkconfig --add mysql.server
Copy after login
Copy after login


五、Cluster环境启动

注意启动顺序:首先是管理节点,然后是数据节点,最后是SQL节点。

1. 启动管理结点

在shell中运行以下命令:


ndb_mgmd -f /var/lib/mysql-cluster/config.ini
Copy after login

还可以使用ndb_mgm来监听客户端,如下:


ndb_mgm
Copy after login

2. 启动数据结点

首次启动,则需要添加--initial参数,以便进行NDB节点的初始化工作。在以后的启动过程中,则是不能添加该参数的,否则ndbd程序会清除在之前建立的所有用于恢复的数据文件和日志文件。


/usr/local/mysql/bin/ndbd --initial
Copy after login

如果不是首次启动,则执行下面的命令。


/usr/local/mysql/bin/ndbd
Copy after login

3. 启动SQL结点

若MySQL服务没有运行,则在shell中运行以下命令:


/usr/local/mysql/bin/mysqld_safe --user=mysql &
Copy after login

4. 启动测试

查看管理节点,启动成功:


六、集群测试

1. 测试一

现在我们在其中一个SQL结点上进行相关数据库的创建,然后到另外一个SQL结点上看看数据是否同步。


在SQL结点1(192.168.124.144)上执行:


shell> /usr/local/mysql/bin/mysql -u root -p
mysql>show databases;
mysql>create database aa;
mysql>use aa;
mysql>CREATE TABLE ctest2 (i INT) ENGINE=NDB; //这里必须指定数据库表的引擎为NDB,否则同步失败
mysql> INSERT INTO ctest2 () VALUES (1);
mysql> SELECT * FROM ctest2;
Copy after login

然后在SQL结点2上看数据是否同步过来了



经过测试,在非master上创建数据,可以同步到master上

查看表的引擎是不是NDB,>show create table 表名;

2. 测试二

关闭一个数据节点 ,在另外一个节点写输入,开启关闭的节点,看数据是否同步过来。

首先把数据结点1重启,然后在结点2上添加数据

在SQL结点2(192.168.124.145)上操作如下:


mysql> create database bb;
mysql> use bb;
mysql> CREATE TABLE ctest3 (i INT) ENGINE=NDB;
mysql> use aa;
mysql> INSERT INTO ctest2 () VALUES (3333);
mysql> SELECT * FROM ctest2;
Copy after login

等数据结点1启动完毕,启动数据结点1的服务


#/usr/local/mysql/bin/ndbd --initial#service mysqld start
Copy after login

然后登录进去查看数据


# /usr/local/mysql/bin/mysql -u root –p
Copy after login

可以看到数据已经同步过来了,说明数据可以双向同步了。

七、关闭集群

1. 关闭管理节点和数据节点,只需要在管理节点(ClusterMgm--134)里执行:


shell> /usr/local/mysql/bin/ndb_mgm -e shutdown
Copy after login

显示


Connected to Management Server at: localhost:1186
2 NDB Cluster node(s) have shutdown.
Disconnecting to allow management server to shutdown.
Copy after login

2. 然后关闭Sql节点(135,136),分别在2个节点里运行:


shell> /etc/init.d/mysql.server stop
Shutting down MySQL... SUCCESS!
Copy after login

注意:要再次启动集群,就按照第五部分的启动步骤即可,不过这次启动数据节点的时候就不要加”-initial”参数了。


The above is the detailed content of Detailed explanation of MySQL-Cluster cluster construction (based on manual compilation of installation packages). For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

MySQL: Simple Concepts for Easy Learning MySQL: Simple Concepts for Easy Learning Apr 10, 2025 am 09:29 AM

MySQL is an open source relational database management system. 1) Create database and tables: Use the CREATEDATABASE and CREATETABLE commands. 2) Basic operations: INSERT, UPDATE, DELETE and SELECT. 3) Advanced operations: JOIN, subquery and transaction processing. 4) Debugging skills: Check syntax, data type and permissions. 5) Optimization suggestions: Use indexes, avoid SELECT* and use transactions.

How to open phpmyadmin How to open phpmyadmin Apr 10, 2025 pm 10:51 PM

You can open phpMyAdmin through the following steps: 1. Log in to the website control panel; 2. Find and click the phpMyAdmin icon; 3. Enter MySQL credentials; 4. Click "Login".

MySQL: An Introduction to the World's Most Popular Database MySQL: An Introduction to the World's Most Popular Database Apr 12, 2025 am 12:18 AM

MySQL is an open source relational database management system, mainly used to store and retrieve data quickly and reliably. Its working principle includes client requests, query resolution, execution of queries and return results. Examples of usage include creating tables, inserting and querying data, and advanced features such as JOIN operations. Common errors involve SQL syntax, data types, and permissions, and optimization suggestions include the use of indexes, optimized queries, and partitioning of tables.

How to use single threaded redis How to use single threaded redis Apr 10, 2025 pm 07:12 PM

Redis uses a single threaded architecture to provide high performance, simplicity, and consistency. It utilizes I/O multiplexing, event loops, non-blocking I/O, and shared memory to improve concurrency, but with limitations of concurrency limitations, single point of failure, and unsuitable for write-intensive workloads.

Why Use MySQL? Benefits and Advantages Why Use MySQL? Benefits and Advantages Apr 12, 2025 am 12:17 AM

MySQL is chosen for its performance, reliability, ease of use, and community support. 1.MySQL provides efficient data storage and retrieval functions, supporting multiple data types and advanced query operations. 2. Adopt client-server architecture and multiple storage engines to support transaction and query optimization. 3. Easy to use, supports a variety of operating systems and programming languages. 4. Have strong community support and provide rich resources and solutions.

MySQL's Place: Databases and Programming MySQL's Place: Databases and Programming Apr 13, 2025 am 12:18 AM

MySQL's position in databases and programming is very important. It is an open source relational database management system that is widely used in various application scenarios. 1) MySQL provides efficient data storage, organization and retrieval functions, supporting Web, mobile and enterprise-level systems. 2) It uses a client-server architecture, supports multiple storage engines and index optimization. 3) Basic usages include creating tables and inserting data, and advanced usages involve multi-table JOINs and complex queries. 4) Frequently asked questions such as SQL syntax errors and performance issues can be debugged through the EXPLAIN command and slow query log. 5) Performance optimization methods include rational use of indexes, optimized query and use of caches. Best practices include using transactions and PreparedStatemen

MySQL and SQL: Essential Skills for Developers MySQL and SQL: Essential Skills for Developers Apr 10, 2025 am 09:30 AM

MySQL and SQL are essential skills for developers. 1.MySQL is an open source relational database management system, and SQL is the standard language used to manage and operate databases. 2.MySQL supports multiple storage engines through efficient data storage and retrieval functions, and SQL completes complex data operations through simple statements. 3. Examples of usage include basic queries and advanced queries, such as filtering and sorting by condition. 4. Common errors include syntax errors and performance issues, which can be optimized by checking SQL statements and using EXPLAIN commands. 5. Performance optimization techniques include using indexes, avoiding full table scanning, optimizing JOIN operations and improving code readability.

Monitor Redis Droplet with Redis Exporter Service Monitor Redis Droplet with Redis Exporter Service Apr 10, 2025 pm 01:36 PM

Effective monitoring of Redis databases is critical to maintaining optimal performance, identifying potential bottlenecks, and ensuring overall system reliability. Redis Exporter Service is a powerful utility designed to monitor Redis databases using Prometheus. This tutorial will guide you through the complete setup and configuration of Redis Exporter Service, ensuring you seamlessly build monitoring solutions. By studying this tutorial, you will achieve fully operational monitoring settings

See all articles