MySQL Cluster单机搭建集群环境
MySQL CLUSTER 集群方案
![MySQL CLUSTER 集群方案](https://img.taocdn.com/s3/m/03026410f18583d049645933.png)
在任意一台机子上启动管理终端:
# ndb_mgm
键入show命令查看当前工作状态:(下面是一个状态输出示例)
– NDB Cluster — Management Client –
ndb_mgm> show
Connected to Management Server at: 192.168.1.111:1186
MySQL CLUSTER 集群方案
来源:网络
(1.双机实现高可用)
一、介绍
这篇文档旨在介绍如何安装配置基于2台服务器的MySQL集群。并且实现任意一台服务器出现问题或宕机时MySql集群依然能够继续运行。加下后续的(keepalived+lvs+mysql cluster文档),可以实现Mysql双机的高可用及负载均衡。
启动管理节点Server2为:
# ndb_mgmd –ndb_nodeid=2
注:在启动时有一个警告提示
Cluster configuration warning:
arbitrator with id 1 and db node with id 3 on same host 192.168.1.111
Id=1
HostName= 192.168.1.111
[ndb_mgmd]
Id=2
HostName= 192.168.1.110
[ndbd]
Id= 3
HostName= 192.168.1.111
[ndbd]
Id= 4
HostName= 192.168.1.110
[mysqld]
TimeBetweenWatchDogCheck= 30000
MySQL集群部署与管理方法
![MySQL集群部署与管理方法](https://img.taocdn.com/s3/m/268ade0ab80d6c85ec3a87c24028915f804d8486.png)
MySQL集群部署与管理方法随着数据量的不断增加以及对高可用性和容错性要求的提高,使用单节点的MySQL数据库已经不再满足需求。
为了满足这些需求,MySQL集群成为了一种常见的选择。
本文将介绍MySQL集群的部署与管理方法,帮助读者更好地理解和应用MySQL集群。
一、MySQL集群的概述MySQL集群是一个由多个MySQL实例组成的系统,在这个系统中,各个实例通过网络相互通信,共同提供数据库服务。
MySQL集群可以实现数据的分布式存储和高可用性,从而提高整个系统的性能和可靠性。
二、MySQL集群的部署MySQL集群的部署需要以下步骤:1. 硬件规划在部署MySQL集群之前,需要对硬件资源进行规划。
根据业务需求和预期的负载,选择适当的硬件配置,包括CPU、内存和存储设备等。
2. 安装MySQL在每个节点上安装MySQL数据库软件。
可以从MySQL官方网站下载最新的MySQL安装包,并按照安装指南进行安装。
确保在安装过程中选择正确的选项,以支持集群功能。
3. 配置网络配置节点之间的网络连接,包括IP地址、子网掩码和网关等。
确保网络配置的正确性,以便节点之间可以正常通信。
4. 配置集群软件在每个节点上配置集群软件,例如MySQL Cluster或Percona XtraDB Cluster。
根据官方文档提供的指南,进行相应的配置和参数调整,以满足业务需求。
5. 创建集群使用集群软件提供的命令或界面,创建一个MySQL集群。
在集群创建过程中,需要指定集群的节点数、复制因子和数据分片等参数。
6. 数据导入将现有的MySQL数据库中的数据导入到集群中。
可以使用MySQL提供的导入工具,例如mysqldump或mysqlimport。
确保在导入数据的过程中,数据的完整性和一致性得到保证。
7. 启动集群在所有节点上启动MySQL集群,观察集群的状态以及节点之间的同步情况。
确保集群正常运行,并能够提供数据库服务。
MySQL数据库集群架构与部署指南
![MySQL数据库集群架构与部署指南](https://img.taocdn.com/s3/m/39f79f1ebdd126fff705cc1755270722192e59e5.png)
MySQL数据库集群架构与部署指南随着数据量和访问量的增长,单一的MySQL数据库已经不能满足高可用和高性能的需求。
为了满足这些需求,使用MySQL数据库集群是一个理想的解决方案。
本文将介绍MySQL数据库集群的架构和部署指南,帮助您构建和管理一个稳定的MySQL集群。
一、概述MySQL数据库集群是由多个MySQL数据库服务器组成的,这些服务器共享相同的数据集。
通过将数据分布到不同的节点上,可以提高系统的可扩展性和吞吐量。
二、MySQL数据库集群架构MySQL数据库集群通常由三个主要组件组成:数据库节点、管理节点和负载均衡器。
1. 数据库节点数据库节点是实际存储和处理数据库数据的服务器。
它们负责数据的读写操作。
您可以根据系统需求,增加或减少数据库节点的数量。
2. 管理节点管理节点用于控制数据库节点的状态和配置。
它们负责数据的复制和同步,以及故障检测和自动故障转移。
3. 负载均衡器负载均衡器用于将客户端请求分发到不同的数据库节点上,以实现负载均衡和高可用性。
常用的负载均衡器有Nginx、HAProxy等。
三、MySQL数据库集群的部署指南以下是MySQL数据库集群的部署指南,以帮助您构建一个稳定和高效的集群环境。
1. 硬件要求在选择硬件时,应考虑以下几个因素:- 容量:确保每个节点具有足够的存储容量,以满足数据的需求。
- 内存:为每个数据库节点提供足够的内存,以支持高并发访问和查询性能。
- CPU:选择高性能的多核CPU,以提供卓越的计算能力。
2. 操作系统选择适合MySQL数据库集群的操作系统有Linux、Unix等。
根据您的需求和熟悉程度选择最合适的操作系统。
3. 数据库节点部署配置每个数据库节点时,注意以下几个要点:- 数据库版本:确保所有节点使用相同的MySQL版本。
- 数据分布:合理划分数据集,确保每个节点的数据负载均衡。
- 复制策略:选择适当的复制策略,包括主从复制、主主复制等。
4. 管理节点部署部署管理节点时,需要注意以下几个关键点:- 配置管理节点的高可用性,采用冗余方案,防止单点故障。
MySQL数据库集群安装与配置指南
![MySQL数据库集群安装与配置指南](https://img.taocdn.com/s3/m/5926c521fe00bed5b9f3f90f76c66137ef064f69.png)
MySQL数据库集群安装与配置指南1. 引言数据库是现代软件系统中不可或缺的重要组成部分,而MySQL数据库则是其中使用最广泛的一种关系型数据库管理系统。
随着数据量和访问压力的增加,单个MySQL数据库服务器往往无法满足高可用性和高并发性的要求。
为了解决这一问题,MySQL数据库集群应运而生。
本文将介绍MySQL数据库集群的安装与配置指南,帮助读者快速搭建一个稳定可靠的数据库集群环境。
2. 准备工作在开始安装和配置MySQL数据库集群之前,您需要准备以下工作:- 一组具备相同操作系统和硬件配置的服务器节点,用于搭建集群。
服务器节点数量取决于负载和可用性需求,一般至少需要三个节点。
- 确保服务器节点之间可以互相通信,可以通过本地网络或者云平台提供的虚拟私有网络(VPC)来实现。
- 下载最新版本的MySQL数据库软件,官方网站提供了各种操作系统下的二进制发行版和源码包。
3. 安装MySQL数据库软件需要在每个服务器节点上安装MySQL数据库软件。
具体安装步骤如下:- 解压MySQL二进制发行版或者编译安装MySQL源码包。
- 配置MySQL实例的基本参数,包括端口号、字符集、缓存大小等。
可以通过编辑`f`配置文件来实现。
- 启动MySQL实例并进行初次配置,包括设置root用户密码、删除不必要的测试数据库等。
4. 配置数据库复制数据库复制是MySQL数据库集群实现高可用性和数据备份的重要机制。
在MySQL数据库集群中,一个节点充当主节点(master),其他节点为从节点(slave)。
具体配置步骤如下:- 在主节点上开启二进制日志(binary log),用于记录数据库的所有操作。
- 在从节点上配置主节点的IP地址和端口号,以及从节点的唯一标识。
- 在从节点上启动复制进程,使其能够连接到主节点并获取主节点的二进制日志。
5. 配置负载均衡负载均衡是MySQL数据库集群实现高并发性的重要机制。
在MySQL数据库集群中,可以使用代理服务器或者分布式文件系统来实现负载均衡。
如何在一台计算机上安装配置mysql-cluster
![如何在一台计算机上安装配置mysql-cluster](https://img.taocdn.com/s3/m/703c290bba1aa8114431d9f5.png)
1.据说从mysql 5.1 以后mysql安装包里就不包含mysql cluster ,而是单独作为一个产品发布,目前mysql网站上最新的版本是mysql cluster 7.2.7。
下载地址:/downloads/cluster/#downloads2.建立有5个节点的MySQL CLuster体系( OS : REDHAT 6.1 )管理节点(MGM) 192.168.251.141SQL节点1(SQL1) 192.168.251.141SQL节点2(SQL2) 192.168.251.141数据节点1(NDBD1) 192.168.251.141数据节点2(NDBD2) 192.168.251.1413.首先去下载文件mysql-cluster-gpl-7.2.7-linux2.6-x86_64.tar.gz4.解压文件到/mysqlData/ 并重命名为mysql-cluster[root@dbcp-db01 mysqlData]# pwd/mysqlData[root@dbcp-db01 mysqlData]# lsmysql-cluster-gpl-7.2.7-linux2.6-x86_64.tar.gz mysql-cluster5.建立软连ln -s /mysqlData/mysql-cluster/ /usr/local/mysql6.在/etc/profile 加入export PATH=$PATH:/usr/local/mysql/binecho “export PATH=$PATH:/usr/local/mysql/bin” >> /etc/profilesource /etc/profile7.配置管理节点[root@dbcp-db01 config]# vi /data/config/mysqlcluster.ini[NDBD DEFAULT]NoOfReplicas=1[TCP DEFAULT]portnumber=3388#[NDB_MGMD]NodeId = 1hostname=192.168.251.141#datadir=/mysqlData/clustermgmd-data/#[NDBD]NodeId = 2hostname=192.168.251.141datadir=/mysqlData/clusterndb1-data/#[NDBD]NodeId = 3hostname=192.168.251.141datadir=/mysqlData/clustern db2-data/#[MYSQLD]NodeId = 4hostname=192.168.251.141#[MYSQLD]NodeId = 5hostname=192.168.251.141[MYSQLD]8.配置存储节点和SQL节点(配置两个cnf 配置不同的参数路径)[root@dbcp-db01 config]# vi /data/config/f[mysqld]ndbclusterbasedir=/mysqlData/mysql-clusterdatadir=/mysqlData/clusterndb1-data/socket=/data/socket/my-n1.sockpid-file=/data/socket/n1.pidlog-error = /mysqlLog/n1_err.logslow_query_log_file = /mysqlLog/n1_slow.logport = 3399ndb-connectstring=192.168.251.141[mysql_cluster]ndb-connectstring=192.168.251.141[root@dbcp-db01 config]# vi /data/config/f[mysqld]ndbclusterbasedir=/mysqlData/mysql-clusterdatadir=/mysqlData/clusterndb2-data/socket=/data/socket/my-n2.sockpid-file=/data/socket/n2.pidlog-error = /mysqlLog/n2_err.logslow_query_log_file = /mysqlLog/n2_slow.logport = 3398ndb-connectstring=192.168.251.141[mysql_cluster]ndb-connectstring=192.168.251.1419.建立mysql用户组和mysql用户groupadd mysqluseradd -g mysql mysql10.创建配置文件中所用到的目录mkdir -p /mysqlData/clusterndb2-data/mkdir -p /mysqlData/clusterndb1-data/mkdir -p /data/socket/mkdir -p /mysqlLog/mkdir -p /mysqlData/clustermgmd-data/11.更改相关目录的权限chown -R mysql.mysql /mysqlData/chown -R mysql.mysql /mysqlLog/12.初始化SQL节点[root@dbcp-db01 ~]# cd /usr/local/mysql/scripts/[root@dbcp-db01 scripts]# ./mysql_install_db --defaults-file=/data/config/f --datadir=/mysqlData/clusterndb1-data/ --user=mysql --basedir=/mysqlData/mysql-cluster/ &[1] 24447[root@dbcp-db01 scripts]# Installing MySQL system tables...OKFilling help tables...OKTo start mysqld at boot time you have to copysupport-files/mysql.server to the right place for your systemPLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !To do so, start the server, then issue the following commands:/mysqlData/mysql-cluster//bin/mysqladmin -u root password 'new-password'/mysqlData/mysql-cluster//bin/mysqladmin -u root -h dbcp-db01 password 'new-password'Alternatively you can run:/mysqlData/mysql-cluster//bin/mysql_secure_installationwhich will also give you the option of removing the testdatabases and anonymous user created by default. This isstrongly recommended for production servers.See the manual for more instructions.You can start the MySQL daemon with:cd /mysqlData/mysql-cluster/ ; /mysqlData/mysql-cluster//bin/mysqld_safe &You can test the MySQL daemon with mysql-test-run.plcd /mysqlData/mysql-cluster//mysql-test ; perl mysql-test-run.plPlease report any problems with the /mysqlData/mysql-cluster//scripts/mysqlbug script![root@dbcp-db01 ~]# cd /usr/local/mysql/scripts/[root@dbcp-db01 scripts]# ./mysql_install_db --defaults-file=/data/config/f --datadir=/mysqlData/clusterndb1-data/ --user=mysql --basedir=/mysqlData/mysql-cluster/ &[1] 24508[root@dbcp-db01 scripts]# Installing MySQL system tables...OKFilling help tables...OK.......13.启动mysql-cluster,启动顺序为管理节点->存储节点->SQL节点A. 启动管理节点[root@dbcp-db01 ~]# ndb_mgmd -f /data/config/mysqlcluster.iniMySQL Cluster Management Server mysql-5.5.25 ndb-7.2.7[root@dbcp-db01 ~]#B. 启动存储节点[root@dbcp-db01 scripts]# /usr/local/mysql/bin/ndbd --defaults-file=/data/config/f --initial2012-08-10 11:25:13 [ndbd] INFO -- Angel connected to '192.168.251.141:1186'2012-08-10 11:25:13 [ndbd] INFO -- Angel allocated nodeid: 2[root@dbcp-db01 scripts]# /usr/local/mysql/bin/ndbd --defaults-file=/data/config/f --initial2012-08-10 11:25:25 [ndbd] INFO -- Angel connected to '192.168.251.141:1186'2012-08-10 11:25:25 [ndbd] INFO -- Angel allocated nodeid: 3[root@dbcp-db01 scripts]#C. 启动SQL节点[root@dbcp-db01 scripts]# mysqld_safe --defaults-file=/data/config/f --user=mysql &[1] 24649[root@dbcp-db01 scripts]# 120810 11:26:41 mysqld_safe Logging to '/mysqlLog/n1_err.log'.120810 11:26:41 mysqld_safe Starting mysqld daemon with databases from /mysqlData/clusterndb1-data/[root@dbcp-db01 scripts]# ps aux | grep mysqldroot 24649 0.1 0.0 106012 1316 pts/1 S 11:26 0:00 /bin/sh /usr/bin/mysqld_safe --defaults-file=/data/config/f --user=mysqlmysql 24732 1.2 2.2 953944 46772 pts/1 Sl 11:26 0:00 /usr/libexec/mysqld --defaults-file=/data/config/f --basedir=/mysqlData/mysql-cluster--datadir=/mysqlData/clusterndb1-data/ --user=mysql --log-error=/mysqlLog/n1_err.log --pid-file=/data/socket/n1.pid --socket=/data/socket/my-n1.sock --port=3399root 24760 0.0 0.0 103152 796 pts/1 S+ 11:27 0:00 grep mysqld[root@dbcp-db01 scripts]# mysqld_safe --defaults-file=/data/config/f --user=mysql &[2] 24761[root@dbcp-db01 scripts]# 120810 11:27:18 mysqld_safe Logging to '/mysqlLog/n2_err.log'.120810 11:27:18 mysqld_safe Starting mysqld daemon with databases from /mysqlData/clusterndb2-data/[root@dbcp-db01 scripts]# ps aux | grep mysqldroot 24649 0.0 0.0 106012 1316 pts/1 S 11:26 0:00 /bin/sh /usr/bin/mysqld_safe --defaults-file=/data/config/f --user=mysqlmysql 24732 0.8 2.2 953944 47184 pts/1 Sl 11:26 0:00 /usr/libexec/mysqld --defaults-file=/data/config/f --basedir=/mysqlData/mysql-cluster--datadir=/mysqlData/clusterndb1-data/ --user=mysql --log-error=/mysqlLog/n1_err.log --pid-file=/data/socket/n1.pid --socket=/data/socket/my-n1.sock --port=3399root 24761 0.2 0.0 106012 1320 pts/1 S 11:27 0:00 /bin/sh /usr/bin/mysqld_safe --defaults-file=/data/config/f --user=mysqlmysql 24844 2.6 2.2 953944 46932 pts/1 Sl 11:27 0:00 /usr/libexec/mysqld --defaults-file=/data/config/f --basedir=/mysqlData/mysql-cluster--datadir=/mysqlData/clusterndb2-data/ --user=mysql --log-error=/mysqlLog/n2_err.log --pid-file=/data/socket/n2.pid --socket=/data/socket/my-n2.sock --port=3398root 24873 0.0 0.0 103152 796 pts/1 S+ 11:27 0:00 grep mysqld[root@dbcp-db01 scripts]#14.所有节点都启动了用ndb_mgm 查看[root@dbcp-db01 ~]# ndb_mgm-- NDB Cluster -- Management Client --ndb_mgm> showConnected to Management Server at: localhost:1186Cluster Configuration---------------------[ndbd(NDB)] 2 node(s)id=2 @192.168.251.141 (mysql-5.5.25 ndb-7.2.7, Nodegroup: 0, Master)id=3 @192.168.251.141 (mysql-5.5.25 ndb-7.2.7, Nodegroup: 1)[ndb_mgmd(MGM)] 1 node(s)id=1 @192.168.251.141 (mysql-5.5.25 ndb-7.2.7)[mysqld(API)] 2 node(s)id=4 @192.168.251.141 (mysql-5.5.25 ndb-7.2.7)id=5 @192.168.251.141 (mysql-5.5.25 ndb-7.2.7)ndb_mgm>15.在SQL节点端口3399上创建数据库,表,插入数据[root@dbcp-db01 config]# mysql -uroot -p -S /data/socket/my-n1.sockEnter password:Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 2Server version: 5.5.25a-ndb-7.2.7-gpl MySQL Cluster Community Server (GPL)Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.This software comes with ABSOLUTELY NO WARRANTY. This is free software,and you are welcome to modify and redistribute it under the GPL v2 licenseType 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> create database cluster_one;Query OK, 1 row affected (0.12 sec)mysql> use cluster_oneDatabase changedmysql> create table c_tb_a (id int ,tname varchar(10)) engine = ndbcluster default charset utf8;Query OK, 0 rows affected (0.25 sec)mysql> insert into c_tb_a values (1,'qqqqqq');Query OK, 1 row affected (0.01 sec)mysql> insert into c_tb_a values (2,'dddddd');Query OK, 1 row affected (0.00 sec)mysql>16.在SQL节点端口3398 上查询数据[root@dbcp-db01 config]# mysql -uroot -p -S /data/socket/my-n2.sockEnter password:Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 2Server version: 5.5.25a-ndb-7.2.7-gpl MySQL Cluster Community Server (GPL)Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.This software comes with ABSOLUTELY NO WARRANTY. This is free software,and you are welcome to modify and redistribute it under the GPL v2 licenseType 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || cluster_one || mysql || ndb_3_fs || ndbinfo || performance_schema || test |+--------------------+7 rows in set (0.04 sec)mysql> use cluster_oneReading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedmysql> show tables;+-----------------------+| Tables_in_cluster_one |+-----------------------+| c_tb_a |+-----------------------+1 row in set (0.00 sec)mysql> select * from c_tb_a;+------+--------+| id | tname |+------+--------+| 1 | qqqqqq || 2 | dddddd |+------+--------+2 rows in set (0.00 sec)mysql>以上就是在一台计算机上安装配置mysql cluster 的过程,其实跟在多台机器上配置差不多,只是在配置cnf的时候要用不同的路径,要注意的是在初始化的时候把--defaults-file --datadir --basedir 几个参数加上。
MySQL数据库集群架构与部署指南
![MySQL数据库集群架构与部署指南](https://img.taocdn.com/s3/m/582c05364b7302768e9951e79b89680202d86b47.png)
MySQL数据库集群架构与部署指南MySQL数据库是一种开源的关系型数据库管理系统,被广泛应用于各种规模的应用程序中。
随着数据量的增加和并发压力的增加,单个MySQL数据库的性能和可靠性可能会变得不足以满足需求。
因此,MySQL数据库集群架构的部署变得越来越重要。
本文将介绍MySQL数据库集群架构的基本概念和原理,并提供一份详细的部署指南,帮助读者理解和搭建自己的MySQL数据库集群。
## 1. MySQL数据库集群架构概述在了解MySQL数据库集群的部署指南之前,首先需要了解MySQL 数据库集群的概念和基本架构。
MySQL数据库集群是一个由多个MySQL数据库服务器组成的系统,共同处理数据库请求,提供高可用性和负载均衡。
MySQL数据库集群的架构可以分为以下几个关键组件:- 数据库服务器(Database Server):承担数据存储和处理任务的服务器,可以有一个或多个。
- 数据节点(Data Node):用于存储和处理实际数据的服务器。
- 管理节点(Management Node):负责管理整个集群的配置、监控和故障恢复。
- 存储引擎(Storage Engine):负责处理具体数据的访问和管理,如InnoDB、MyISAM等。
## 2. MySQL数据库集群部署前的准备在开始部署MySQL数据库集群之前,需要进行一些准备工作。
以下是准备工作的步骤和注意事项:### 2.1 硬件和网络环境评估评估和选择适合自己应用需求的硬件资源,包括CPU、内存、磁盘空间等。
同时,确保网络环境能够满足集群的数据传输需求,例如带宽、延迟等。
### 2.2 数据库备份与恢复策略制定合适的数据库备份与恢复策略,包括备份频率、备份存储位置、备份数据的完整性等。
这将极大地提高数据的可靠性和安全性。
### 2.3 安全措施采取适当的安全措施保护数据库集群的安全,例如访问控制、SSL加密、防火墙等。
### 2.4 数据库分区和复制策略根据自身业务需求,合理规划数据库的分区和复制策略,以提高性能和可用性。
Galera_Cluster_for_MySQL集群搭建
![Galera_Cluster_for_MySQL集群搭建](https://img.taocdn.com/s3/m/b0cd95b0f424ccbff121dd36a32d7375a417c6bd.png)
Galera_Cluster_for_MySQL集群搭建Galera Cluster for MySQL集群搭建要架设Galera Cluster Server,有两种套件选择,⼀个是Percona XtraDB Cluster另⼀个是MariaDB Galera Cluster,这次介绍后者的安装。
Galera Cluster 介绍为什么要选择Galera Cluster Server,它有什么优点及功能呢?MySQL/Galera 是⼀套可以同步多台MySQL/InnoDB 机器的丛集系统,底下可以列出功能。
同步复制资料可读取和写⼊丛集系统内任⼀节点⾃动侦测节点错误,如果有节点当机,则丛集系统⾃动移除该节点可任意扩充节点采⽤row level ⽅式来平⾏复制资料从上⾯功能看来,我们可以平⾏任意扩充节点,动态增加服务器到丛集系统,要做到上⾯功能,就是利⽤Galera library来做到同步资料处理,同步的详细细节,可以参考Galera library连结。
这边就不再多描述了。
Galera Cluster的部署安装Galera Cluster Server本篇介绍的MySQL Server是使⽤MariaDB套件,⽽不是安装原始的MySQL。
CentOS和Ubuntu安装⽅式雷同,前者是⽤yum后者则是aptitude,在安装前请先下载对应的repository配置⽂件[https:///doc/662cccd0dc88d0d233d4b14e852458fb760b385d.html/mariadb/repositories/#mirror=qiming] CentOS$ yum -y update; yum -y upgrade$ yum –y install MariaDB-Galera-server MariaDB-clientgaleraUbuntu$ aptitude -y update$ aptitude -y install mariadb-galera-server-5.5 galera或者apt-get:$ apt-get -y update$ apt-get -y install mariadb-galera-server-5.5 galera启动MySQL$/etc/init.d/mysql start设置Galera Cluster Server先讲⼀下环境,⽬前总共两台Galera Server,IP 分别是:Node_1: 192.168.1.100Node_2: 192.168.1.101建⽴Node_1, Node_2 MySQL User,⽤来认证使⽤,先进⼊MySQL Console.$ mysql -u root -pWelcome to the MariaDB monitor. Commands end with ; or \g.Your MariaDB connectionidis 154Server version: 10.0.1-MariaDB-mariadb1~precise-log/doc/662cccd0dc88d0d233d4b14e852458fb760b385d.html binary distributionCopyright (c) 2000, 2012, Oracle, Monty Program Ab and others.Type'help;'or'\h'forhelp. Type'\c'toclearthe current input statement.MariaDB [(none)]>建⽴cluster 使⽤者,密码为1234,针对% 跟localhost 同时建⽴。
Mysql-cluster环境配置V2
![Mysql-cluster环境配置V2](https://img.taocdn.com/s3/m/b0e6ae46cf84b9d529ea7a0e.png)
Mysql-cluster环境配置硬件环境4台机器192.168.1.10 管理节点192.168.1.11 存储节点SQL节点192.168.1.12 存储节点、SQL节点192.168.1.13 SQL节点软件环境:操作系统:CentOS 6 .5(64位)Mysql版本:MySQL-Cluster-gpl-7.3.5-1.el6.x86_64.rpm-bundle.tarmysql-cluster-gpl-7.3.5-linux-glibc2.5-x86_64.tar.gz(需要其中的两个文件)安装准备:1. 解压MySQL-Cluster-gpl-7.3.5-1.el6.x86_64.rpm-bundle.tar:将解压后的MySQL-Cluster-server-gpl-7.3.5-1.el6.x86_64.rpm分发至每台机器;将解压后的MySQL-Cluster-client-gpl-7.3.5-1.el6.x86_64.rpm分发至SQL节点;2. 清理旧的Mysql安装:yum -y remove mysqlrpm -qa | grep mysql*对于找到的1个剩余mysql包,请按照如下的命令格式予以删除:rpm -e --nodeps mysql-libs-5.1.61-4.el6.x86_643. 安装依赖库:yum -y install libaio安装MySQL Cluster:创建文件夹(分如下3个类来创建对应的文件夹)存储节点:mkdir /var/lib/mysql/data管理节点:mkdir /var/lib/mysql-cluster SQL节点:可不用文件夹授权进程DIR: mkdir /var/run/mysqld使用如下的命令来变更权限保证可写入:chmod -R 1777 /var/lib/mysqlchmod -R 1777 /var/run/mysqldchmod -R 1777 /var/lib/mysql-cluster1. 在每台机器上安装MySQL-Cluster-server-gpl-7.3.5-1.el6.x86_64.rpm执行命令:rpm -Uvh MySQL-Cluster-server-gpl-7.3.5-1.el6.x86_64.rpm安装后会提示默认密码存放在/root/.mysql_secret文件中(也有时候不提示)2. 在SQL节点上安装MySQL-Cluster-client-gpl-7.3.5-1.el6.x86_64.rpm执行命令:rpm -Uvh MySQL-Cluster-client-gpl-7.3.5-1.el6.x86_64.rpm配置管理节点:1.解压mysql-cluster-gpl-7.3.5-linux-glibc2.5-x86_64.tar.gz,进入其mysql-cluster-gpl-7.3.5-linux-glibc2.5-x86_64\bin目录找到ndb_mgm和ndb_mgmd,将其复制到管理节点的/usr/local/bin,然后使这两个文件成为可执行的:cd /usr/local/binchmod +x ndb_mgm*2.在管理节点上执行:cd /var/lib/mysql-clustervi config.ini内容如下:[ndbd default]NoOfReplicas=2DataMemory=80MIndexMemory=20M[ndb_mgmd]# Management process options:hostname=192.168.1.10 # Hostname or IP address of MGM nodedatadir=/var/lib/mysql-cluster # Directory for MGM node log files[ndbd]HostName=192.168.1.11DataDir=/var/lib/mysql/data[ndbd]HostName=192.168.1.12DataDir=/var/lib/mysql/data[mysqld]HostName=192.168.1.11[mysqld]HostName=192.168.1.12[mysqld]HostName=192.168.1.13配置两个管理节点,如下所示:[ndb_mgmd]hostname=192.168.1.10datadir=/var/lib/mysql-cluster[ndb_mgmd]hostname=192.168.1.13datadir=/var/lib/mysql-cluster需要配置两个ndb_mgmd同时存储节点和SQL节点修改如下:[mysqld]ndbclusterndb-connectstring=192.168.1.10,192.168.1.13[mysql_cluster]ndb-connectstring=192.168.1.10,192.168.1.13配置存储节点和SQL节点:在所有存储节点和SQL节点上建立配置文件:vi /etc/f内容如下:[client]socket=/var/lib/mysql/mysql.sock[mysqld]max_connections=100datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sockndbclusterndb-connectstring=192.168.1.10[mysqld_safe]log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid[mysql_cluster]ndb-connectstring=192.168.1.10~启动各个节点:注意顺序。
如何在Linux上搭建MySQL数据库集群
![如何在Linux上搭建MySQL数据库集群](https://img.taocdn.com/s3/m/000fb061580102020740be1e650e52ea5418ce41.png)
如何在Linux上搭建MySQL数据库集群MySQL是目前使用最广泛的关系型数据库管理系统之一,它的高性能和可扩展性使得它成为构建数据库集群的理想选择。
在Linux操作系统下搭建MySQL数据库集群可以进一步提高系统的稳定性和可用性。
本文将引导您一步步完成在Linux上搭建MySQL数据库集群的过程。
1. 安装和配置MySQL首先,您需要在每个集群节点上安装MySQL。
可以通过以下命令在Linux系统上安装MySQL:```$ sudo apt-get install mysql-server```安装完成后,您需要修改MySQL的配置文件以确保所有节点使用相同的配置。
打开MySQL的配置文件(通常是/etc/mysql/f),并对以下参数进行相应的修改:- bind-address:将此参数设置为集群的管理节点的IP地址。
- server-id:设置每个节点的唯一ID,ID可以是1到255之间的任意整数。
- log_bin:启用二进制日志,以便进行数据复制。
- binlog_do_db:指定需要复制的数据库。
保存更改并重新启动MySQL服务。
2. 设置集群管理节点选择一个节点作为集群的管理节点,它将负责管理整个集群。
在管理节点上执行以下步骤:2.1 创建复制用户在MySQL命令行中执行以下命令来创建用于复制的用户:```mysql> CREATE USER 'repl'@'%' IDENTIFIED BY 'password';mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';mysql> FLUSH PRIVILEGES;```将"'password'"替换为您想要设置的密码。
2.2 获取主节点的二进制日志位置在管理节点上执行以下命令,以获取主节点的二进制日志文件名和位置:```mysql> SHOW MASTER STATUS;```记录下File和Position的值,稍后将在从节点上使用。
mysql数据库集群方案
![mysql数据库集群方案](https://img.taocdn.com/s3/m/9d78a7ae50e79b89680203d8ce2f0066f5336414.png)
mysql数据库集群方案随着互联网的快速发展,大型网站的访问量逐渐增加,单机mysql已经不能满足高并发、高可用、海量数据的需求。
因此,mysql数据库集群方案应运而生。
1.集群基础架构mysql集群是由多台服务器组成,它们协同工作以提供更高的可用性和可扩展性。
主要的组件包括管理节点、数据节点和客户端接口。
1.1 管理节点管理节点控制集群中的所有数据节点,并管理数据、用户和节点。
它还负责控制故障检测和修复。
管理节点可以被安装在物理服务器、虚拟机中或是云服务中。
1.2 数据节点数据节点是存储数据的主要组成部分,每个数据节点都包括一个mysql服务器实例和文件系统。
数据节点可以在物理服务器或虚拟机中安装。
每个数据节点都包含一部分数据,通过数据分片技术实现数据的分散存储。
1.3 客户端接口客户端接口是集群应用程序和集群之间的通信通道。
这个组件提供给应用程序公共命令和API,已实现对集群的管理和操作。
例如,可将在一个节点上执行的命令传递给整个集群中的所有节点。
2. 集群配置通常,在您配置mysql集群之前,需要考虑以下因素:2.1 负载均衡为了使集群运作良好,必须保持负载均衡。
通常,此功能通过VIP(虚拟IP)和透明路由器实现。
2.2 数据备份您可以使用MySQL自带的复制功能来备份数据。
另外,一些第三方备份和恢复方案也可用于mysql集群。
2.3 集群容错确保所有节点连通性通常需要在应用程序与查询期间检查节点。
在检测到故障时,故障的节点将自动从集群中删除,让其他节点继续提供服务。
2.4 系统监控系统监控是mysql集群的重要组成部分。
它可用于监控组件和节点的运行,以及故障检测和诊断。
3. mysql集群方案mysql有许多集群方案,其中最为常用的包括MySQL cluster、Galera cluster和Percona XtraDB Cluster。
3.1 MySQL ClusterMySQL Cluster是由MySQL AB开发的开源集群方案,可扩展性高、高可用性和很好的负载均衡。
mysql集群环境搭建(windowslinux)(精)
![mysql集群环境搭建(windowslinux)(精)](https://img.taocdn.com/s3/m/c361fdce49649b6649d74707.png)
mysql集群环境搭建Windows环境Mysql-clusteran安装包下载地/downloads/cluster/;本文档以mysql-cluster-gpl-7.4.6-winx64.zip安装包为例,三台机器搭建mysql集成环境。
管理结点:192.168.1.132数据结点:192.168.1.159,192.168.1.66Sql结点:192.168.1.159,192.168.1.66一、管理节点配置(192.168.1.1321、将mysql-cluster安装包解压至C盘,进入/mysql-cluster-gpl-7.4.6-winx64/目录新建cluster-logs日志存储文件夹,然后进入mysql-cluster-gpl-7.4.6-winx64/bin 目录,将config.ini,my.ini拷贝至该目录下。
配置文件具体内容如下:Config.ini文件:[NDBD DEFAULT]NoOfReplicas=2//副本结点数量datadir=c:\mysqlcluster\datanode\mysql\bin\cluster-data//管理节点运行时文件储存目录,可以自定义路径,但要保证是有效的路径。
datamemory=1Gindexmemory=200M[MYSQLD DEFAULT][NDB_MGMD DEFAULT][TCP DEFAULT][NDB_MGMD]Nodeid=1HostName=192.168.1.132//管理结点IPdatadir=C:\mysqlcluster\mysql-cluster-gpl-7.4.6-winx64\cluster-logs//管理结点日志文件储存路径。
[NDBD]Nodeid=2HostName=192.168.1.159//数据结点IPDataDir=c:\mysqlcluster\datanode\mysql\bin\cluster-data//数据结点2运行时文件储存目录,可以自定义路径,但要保证是有效的路径。
mysql cluster集群配置与安装
![mysql cluster集群配置与安装](https://img.taocdn.com/s3/m/a676e833eefdc8d376ee325c.png)
安装版本:mysql cluster 7.2.6操作系统centos6.2 (X64)软件名称mysql-cluster-gpl-7.2.6-linux2.6-x86_64.tar.gz管理节点数据节点SQL节点在IP 10.8.10.38(master)数据节点SQL节点在IP 10.8.10.35首先,检查系统是否装载了mysql使用命令rpm -qa|grep -i mysql如果有显示全部卸载,如果没有说明没有安装mysqlrpm -e MySQL-python-1.2.3-0.3.c1.1.el6.x86_64rpm -e mysql-5.1.52-1.el6_0.1.x86_64rpm -e mysql-connector-odbc-5.1.5r1144-7.el6.x86_64rpm -e mysql-libs-5.1.52-1.el6_0.1.x86_64 –nodeps删除frm –fr /etc/ftar -zxvf mysql-cluster-gpl-7.2.6-linux2.6-x86_64.tar.gz解压完成后运行mv mysql-cluster-gpl-7.2.6-linux2.6-x86_64 /usr/local/mysql添加用户mysqluseradd mysqlchown -R mysql:mysql /usr/local/mysql/进入安装脚本路径cd /usr/local/mysql/scripts/带参数运行安装程序./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data &注意:&不带此符号,安装程序容易不进行安装,而且报错拷贝ndb_mgm ndb_mgmd 文件到/usr/local/bin/cp -fr /usr/local/mysql/bin/ndb_mgm* /usr/local/bin/创建mysql-cluster文件夹mkdir /var/lib/mysql-cluster创建config.ini文件vi /var/lib/mysql-cluster/config.ini文件内容[NDBD DEFAULT]NoOfReplicas: 1 #定义在Cluster环境中相同数据的份数最大为4# Data Memory, Index Memory, and String Memory #DataMemory: 500M #分配的数据内存大小IndexMemory: 250M #设定用于存放索引(非主键)数据的内存段大小#一个NDB节点能存放的数据量是会受到DataMemory和IndexMemory两个参数设置的约束,#两者任何一个达到限制数量后,都无法再增加能存储的数据量。
【IT专家】MySql集群环境搭建(windows平台)
![【IT专家】MySql集群环境搭建(windows平台)](https://img.taocdn.com/s3/m/12b5c85c58fafab069dc02d8.png)
本文由我司收集整编,推荐下载,如有疑问,请与我司联系MySql集群环境搭建(windows平台)2015/11/30 356 环境:Windows 7(64)平台,两台机器(A,B), Server A(管理节点,数据节点,SQL节点) Server B(数据节点,SQL节点) 1、下载MySQL cluster安装包 downloads.mysql/archives/cluster/ 下载msi installer 2、安装 1)分别在A,B两台机器上同名目录下安装。
默认是安装在C:\Program Files\MySQL。
2)分别在两台机器上运行一下命令安装MySQL服务: \bin\mysqld.exe --install mysql (这里mysql 是服务名称(即在Windows services 里显示的service名字),可以随便取) 3、创建配置文件 1)创建管理节点配置文件(可以放在任意目录下) 比如这里创建目录c:\mysql,然后创建子目录data、ndbdata和文件config.ini,内容如下: [NDBD DEFAULT] NoOfReplicas=2 [NDB_MGMD] NodeID=1 hostname=172.xxx.xxx.xxx datadir=c:\mysql\data #config storage nodeid [NDBD] NodeID=2 hostname=172.xxx.xxx.xxx datadir=c:\mysql\ndbdata [NDBD] NodeID=3 hostname=192.xxx.xxx.xxx datadir=C:\mysql\ndbdata #config SQL NODEID [MYSQLD] NodeID=4 hostname=172.xxx.xxx.xxx [MYSQLD] NodeID=5 hostname=192.xxx.xxx.xxx 2) 配置存储节点和SQL节点配置文件。
详解MySQL集群搭建
![详解MySQL集群搭建](https://img.taocdn.com/s3/m/343a767ba55177232f60ddccda38376baf1fe072.png)
概述
MySQL Cluster 是MySQL 适合于分布式计算环境的高实用、可拓展、高性能、高冗余版本,其研发设计的初衷就是要满足许 多行业里的最严酷应用要求,这些应用中经常要求数据库运行的可靠性要达到99.999%。MySQL Cluster允许在无共享的系统 中部署“内存中”数据库集群,通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求。此外,由于每个组 件有自己的内存和磁盘,不存在单点故障。
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
3. 关闭安全策略 关闭iptables防火墙(或者打开防火墙的1186、3306端口),在Shell中运行以下命令:
cp support-files/mysql.server /etc/rc.d/init.d/ chmod +x /etc/rc.d/init.d/mysql.server chkconfig --add mysql.server
五、Cluster环境启动 注意启动顺序:首先是管理节点,然后是数据节点,最后是SQL节点。 1. 启动管理结点 在shell中运行以下命令:
mysqlcluster使用了一个专用的基于内存的存储引擎ndb引擎这样做的好处是速度快没有磁盘io的瓶颈但是由于是基于内存的所以数据库的规模受系统总内存的限制如果运行ndb的mysql服务器一定要内存够大比如4g8g甚至16gndb引擎是分布式的它可以配置在多台服务器上来实现数据的可靠性和扩展性理论上通过配置2台ndb的存储节点就能实现整个数据库集群的冗余性和解决单点故障问题
Mysql集群环境搭建
![Mysql集群环境搭建](https://img.taocdn.com/s3/m/1c200adf29ea81c758f5f61fb7360b4c2e3f2afe.png)
Mysql集群环境搭建在上⼀篇⽂章中已经详细的写了关于Mysql的安装步骤。
这⼀篇⽂章在上⼀篇⽂章的基础之上接着写集群的安装与部署。
安装地址:MySQL主从复制配置主节点服务器地址 192.168.0.105从节点服务器地址 192.168.0.107主节点服务器安装好之后,直接clone ⼀个即可,不需要重复安装2次。
主节点服务器配置1.进⼊配置页⾯命令vi /etc/f2.配置服务器id server_id这⾥的server_id 尽量配置为服务器地址的后3位以⽤来区分server_id=1053.开启⽇志⽂件(binLog)log-bin=mysql-bin配置⽂件的地址应该在: # Recommended in standard MySQL setup,否则配置不起作⽤如下图所⽰4.重启mysql服务service mysqld restart验证是否已经配置成功5.show variables like '%server_id%';能够查询对应配置⽂件中的server_id 说明已经配置成功,如下图,则表⽰配置成功。
server_id=1056.show master status;能够看到同步的⽂件,和⾏数说明已经配置成功。
从服务器节点1.进⼊配置页⾯命令vi /etc/f2.配置服务器id server_id这⾥的server_id 尽量配置为服务器地址的后3位以⽤来区分server_id=1053.开启⽇志⽂件(binLog)log-bin=mysql-bin4.添加需⽤同步的数据库binlog_do_db=test5.重启mysql服务service mysqld restart验证是否已经配置成功6.show variables like '%server_id%';能够查询对应配置⽂件中的server_id 说明已经配置成功7.从服务器同步主服务器配置master_host 主服务器地址master_user 主服务器⽤户名master_password 主服务器密码master_log_file 主服务器配置⽂件master_log_pos 主服务器读取配置⽂件的开始位置,也就是从第多少⾏开始读取。
mysql数据库集群配置详解
![mysql数据库集群配置详解](https://img.taocdn.com/s3/m/08013172f242336c1eb95e2f.png)
mysql数据库集群配置详解环境:Vmware workstation6.5操作系统:Centos 5.2 (2台)第一台:主机名:mysql1 IP:192.168.1.30第二台主机名:mysql2 IP:192.168.1.32软件下载安装下载软件地址:/downloads/select.php?id=14选择操作系统是RedHat Enterprise 版本如下:MySQL-Cluster-gpl-client-7.0.8a-0.rhel5.i386.rpmMySQL-Cluster-gpl-debuginfo-7.0.8a-0.rhel5.i386.rpmMySQL-Cluster-gpl-devel-7.0.8a-0.rhel5.i386.rpmMySQL-Cluster-gpl-embedded-7.0.8a-0.rhel5.i386.rpmMySQL-Cluster-gpl-extra-7.0.8a-0.rhel5.i386.rpmMySQL-Cluster-gpl-management-7.0.8a-0.rhel5.i386.rpmMySQL-Cluster-gpl-server-7.0.8a-0.rhel5.i386.rpmMySQL-Cluster-gpl-shared-7.0.8a-0.rhel5.i386.rpmMySQL-Cluster-gpl-storage-7.0.8a-0.rhel5.i386.rpmMySQL-Cluster-gpl-test-7.0.8a-0.rhel5.i386.rpmMySQL-Cluster-gpl-tools-7.0.8a-0.rhel5.i386.rpm将软件包上传到服务器Rpm –ivh *.rpm具体配置在两台机器上做(同样的配置文件)1、创建配置文件目录:(mysql1 mysql2)#mkdir /var/lib/mysql-cluster –p在/var/lib/mysql-cluster 下创建集群配置文件config.ini编辑,添加如下内容:[NDBD DEFAULT]NoOfReplicas=2DataMemory=128MIndexMemory=64MMaxNoOfConcurrentOperations=2000000[MYSQLD DEFAULT][NDB_MGMD DEFAULT]DataDir= /var/lib/mysql-cluster[TCP DEFAULT]# Section for the cluster management node[NDB_MGMD]# IP address of the management node (this system) ID=1HostName= 192.168.1.30[NDB_MGMD]# IP address of the management node (this system) ID=2HostName= 192.168.1.32# Section for the storage nodes[NDBD]ID=3# IP address of the first storage nodeHostName=192.168.1.30[NDBD]ID=4# IP address of the second storage node HostName=192.168.1.32# one [MYSQLD] per storage node[MYSQLD][MYSQLD][MYSQLD][MYSQLD][MYSQLD][MYSQLD][MYSQLD]2、创建API文件(mysql1 mysql2)编辑/etc/f 添加如下内容:[mysqld]default-storage-engine=ndbclusterlog=queryLoglog-slow-queries=slowquerylogmax_connections = 1000#NDBCLUSTERndbclusterndb-connectstring = 192.168.1.30,192.168.1.32[ndb_mgm]connect-string = 192.168.1.30,192.168.1.32[ndbd]connect-string = 192.168.1.30,192.168.1.32[mysql_cluster]ndb-connectstring= 192.168.1.30,192.168.1.32[ndb_mgmd]config-file=/var/lib/mysql-cluster/config.ini集群的启动:启动管理节点在mysql1 上启动管理节点# ndb_mgmd –ndb_nodeid=1在mysql2上启动管理节点# ndb_mgmd –ndb_nodeid=2第一次会有警告:Cluster configuration warning:arbitrator with id 1 and db node with id 3 on same host 192.168.1.30 arbitrator with id 2 and db node with id 4 on same host 192.168.1.32 Running arbitrator on the same host as a database node maycause complete cluster shutdown in case of host failure.是说:节点1和3,2和4的arbitrator一样,可能引起整个集群失败这个无所谓,继续启动NDB在mysql1 上运行:# ndbd –nodeid=3 –initial在mysql2上运行:# ndbd –nodeid=4 –iniitial注意:在第一次启动ndb或者修改了config.ini 文件才加上-initiail 参数查看状态:在任意一台机器上查看:[root@mysql1 ~]# ndb_mgm-- NDB Cluster -- Management Client --ndb_mgm> showConnected to Management Server at: 192.168.1.30:1186Cluster Configuration---------------------[ndbd(NDB)] 2 node(s)id=5 @192.168.1.30 (mysql-5.1.37 ndb-7.0.8, Nodegroup: 0, Master)id=6 @192.168.1.32 (mysql-5.1.37 ndb-7.0.8, Nodegroup: 0)[ndb_mgmd(MGM)] 2 node(s)id=1 @192.168.1.30 (mysql-5.1.37 ndb-7.0.8)id=2 @192.168.1.32 (mysql-5.1.37 ndb-7.0.8)[mysqld(API)] 9 node(s)id=7 (not connected, accepting connect from any host)id=8 (not connected, accepting connect from any host)id=9 (not connected, accepting connect from any host)id=10 (not connected, accepting connect from any host)id=11 (not connected, accepting connect from any host)id=12 (not connected, accepting connect from any host)id=13 (not connected, accepting connect from any host)id=14 (not connected, accepting connect from any host)id=15 (not connected, accepting connect from any host)看到上面的信息就正常了启动API在mysql1中:#mysqld_safe –ndb_nodeid=5 –user=mysql &在mysql2 中:#mysqld_safe –ndb_nodeid=6 –user=mysql &再次查看:[root@mysql1 ~]# ndb_mgm-- NDB Cluster -- Management Client --ndb_mgm> showConnected to Management Server at: 192.168.1.30:1186Cluster Configuration---------------------[ndbd(NDB)] 2 node(s)id=5 @192.168.1.30 (mysql-5.1.37 ndb-7.0.8, Nodegroup: 0, Master) id=6 @192.168.1.32 (mysql-5.1.37 ndb-7.0.8, Nodegroup: 0)[ndb_mgmd(MGM)] 2 node(s)id=1 @192.168.1.30 (mysql-5.1.37 ndb-7.0.8)id=2 @192.168.1.32 (mysql-5.1.37 ndb-7.0.8)[mysqld(API)] 9 node(s)id=7 @192.168.1.30 (mysql-5.1.37 ndb-7.0.8)id=8 @192.168.1.32 (mysql-5.1.37 ndb-7.0.8)id=9 (not connected, accepting connect from any host)id=10 (not connected, accepting connect from any host)id=11 (not connected, accepting connect from any host)id=12 (not connected, accepting connect from any host)id=13 (not connected, accepting connect from any host)id=14 (not connected, accepting connect from any host)id=15 (not connected, accepting connect from any host)显示两个API节点正常集群测试在mysql1中创建库# /usr/local/mysql/bin/mysql -u root -pmysql >create database love;mysql > use love;mysql > create table love (i INT)mysql > insert into love () VALUES (1);在mysql2上查询:mysql > select * from love;mysql> show tables;+----------------+| Tables_in_love |+----------------+| love |+----------------+1 row in set (0.03 sec)mysql> select * from love;+------+| i |+------+| 1 |+------+1 row in set (0.08 sec)已经同步:下面我将mysql1 停掉网卡:看一下状态:[root@mysql2 ~]# ndb_mgm-- NDB Cluster -- Management Client --ndb_mgm> showConnected to Management Server at: 192.168.1.32:1186Cluster Configuration---------------------[ndbd(NDB)] 2 node(s)id=5 (not connected, accepting connect from 192.168.1.30)id=6 @192.168.1.32 (mysql-5.1.37 ndb-7.0.8, Nodegroup: 0, Master)[ndb_mgmd(MGM)] 2 node(s)id=1 (not connected, accepting connect from 192.168.1.30)id=2 @192.168.1.32 (mysql-5.1.37 ndb-7.0.8)[mysqld(API)] 9 node(s)id=7 (not connected, accepting connect from any host)id=8 (not connected, accepting connect from any host)id=9 (not connected, accepting connect from any host)id=10 (not connected, accepting connect from any host)id=11 (not connected, accepting connect from any host)id=12 (not connected, accepting connect from any host)id=13 (not connected, accepting connect from any host)id=14 (not connected, accepting connect from any host)id=15 (not connected, accepting connect from any host)mysql2 对外提供服务成为主服务器看能否查询:mysql> select * from love;ERROR 1296 (HY000): Got error 157 'Unknown error code' from NDBCLUSTER mysql> select * from love;ERROR 1296 (HY000): Got error 157 'Unknown error code' from NDBCLUSTER 暂时不能查询,出现错误:稍等片刻再次查询,没有错误,这段时间是故障转移,时间不是很长具体时间没计算在mysql2 上创建表:mysql > create table love1 (i INT)mysql > insert into love1 () VALUES (1);接下来将mysql1的网卡启动在mysql1上查询数据:[root@mysql1 ~]# mysql -u root -pEnter password:Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 4Server version: 5.1.37-ndb-7.0.8a-cluster-gpl-log MySQL Cluster Server (GPL) Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> use love;Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedmysql> show tables ;+----------------+| Tables_in_love |+----------------+| love || love1 |+----------------+2 rows in set (0.01 sec)mysql> select * from love1;+------+| i |+------+| 1 |+------+1 row in set (0.00 sec)可以看到在mysql2上创建的表love2正常运行但是mysql1成为主服务器,这个怎么改变过来,还不清楚The end !。
mysql集群配置
![mysql集群配置](https://img.taocdn.com/s3/m/9c73dc7f01f69e3143329487.png)
MySQL-Cluster 配置流程1.MySQL-Cluster简介MySQL-Cluster主要有三种类型节点:数据节点,数据节点将保存数据库,它会自动复制所有的数据节点;整个数据库集群操作的所有物理数据及数据库对象保存在本类型节点。
Sql节点,sql节点完成和高层应用的交互,是应用访问集群的入口,在应用看来使用本节点的具体方式和单独mysql数据库无差别;管理节点,管理节点,用以监控和管理整个集群。
具有管理客户端功能,是一系列管理命令的集合,本身不参与数据库存储相关操作。
节点之间的通讯基于TCP协议,在搭建环境时需要配置通讯相关配置项。
2.安装环境及软件包2台PC机,通过VMWare创建虚拟机,然后安装操作系统软件包:MySQL-Cluster-client-gpl-7.3.7-1.rhel5.x86_64.rpmMySQL-Cluster-server-gpl-7.3.7-1.rhel5.x86_64.rpm操作系统:Redhat.Enterprise.Linux.v5.UPDATE.7.X86.DVD-HOTiSO.isoHostname1:192.168.17.109Hostname2:192.168.17.110数据库管理节点:192.168.17.109,192.168.17.110数据库数据节点:192.168.17.109,192.168.17.110数据库SQL节点(API节点):192.168.17.109,192.168.17.1103.安装以下步骤需要在两台机器,即Hostname1和Hostname2上各做一次1.首先检查linux操作系统中是否安装了自带的mysql数据库一般linux自带mysql版本都比较低一些,因此要安装比较新的版本需要先将自带的低版本卸载。
检查操作系统中是否安装了mysql的命令:rpm -qa |grep -i mysql卸载mysql的命令:rpm -e mysqlXXXX或者使用yum -remove mysqlXXX来删除,这样可以避免卸载过程中由于各个包之间的依赖造成卸载停止2.创建mysql用户和组groupadd mysqluseradd -g mysqlmysqlusermod -d /home/mysql mysql3.将MySQL-Cluster上传到/home/mysql/目录下,开始安装MySQL-Cluster。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
运行环境:centos6.1Mysql版本:MySQL-cluster-gpl-7.2.6-linux2.6-x86_6下载地址:/Downloads/MySQL-Cluster-7.2/mysql-cluster-gpl-7.2.6-linux2. 6-x86_64.tar.gz对于这第一个MySQL数据库的集群,它由1个单一的MySQL服务引擎(mysqlds)、两个数据节点(ndbd)和一个单一的管理节点(ndb_mgmd)共同组成,所有的节点都运行在同一台主机上。
为配置文件和数据文件创建必要的存储文件夹,分别要建立如下几个文件夹:① /home/mysql/my_cluster② /home/mysql/my_cluster/ndb_data③ /home/mysql/my_cluster/mysqld_data④ /home/mysql/my_cluster/mysqld_data/mysql⑤ /home/mysql/my_cluster/mysqld_data/ndbinfo⑥ /home/mysql/my_cluster/conf具体安装步骤:1. 添用加户与组mysql[plain]view plaincopy1.shell> groupadd mysql2.shell> useradd -r -d /home/mysql -g mysql mysql[plain]view plain copy1.shell> groupadd mysql2.shell> useradd -r -d /home/mysql -g mysql mysql2. 切换到mysql用户权限下[plain]view plaincopy1.shell> su - mysql[plain]view plain copy1.shell> su - mysql3. 下载mysql cluster[plain]view plaincopy1.shell> wget /Downloads/MySQL-Cluster-7.2/mysql-cluster-gpl-7.2.6-linux2.6-x86_64.tar.gz2.shell> tar -zxvf mysql-cluster-gpl-7.2.6-linux2.6-x86_64.tar.gz3.shell> ln -s mysql-cluster-gpl-7.2.6-linux2.6-x86_64 mysqlc[plain]view plain copy1.shell> wget /Downloads/MySQL-Cluster-7.2/mysql-cluster-gpl-7.2.6-linux2.6-x86_64.tar.gz2.shell> tar -zxvf mysql-cluster-gpl-7.2.6-linux2.6-x86_64.tar.gz3.shell> ln -s mysql-cluster-gpl-7.2.6-linux2.6-x86_64 mysqlc4. 安装mysql cluster[plain]view plaincopy1.shell> cd /home/mysql2.shell> mkdir my_cluster my_cluster/ndb_data my_cluster/mysqld_data my_cluster/conf3.在conf目录添加以下2个配置文件(注意:“/home/mysql”需要替换为你自己的用户目录)4.f:6.[mysqld]7.ndbcluster8.datadir=/home/mysql/my_cluster/mysqld_data9.basedir=/home/mysql/mysqlc10.port=500011.12.config.ini:13.[ndb_mgmd]14.hostname=localhost15.datadir=/home/mysql/my_cluster/ndb_data16.NodeId=117.[ndbd default]18.noofreplicas=219.datadir=/home/mysql/my_cluster/ndb_data20.[ndbd]21.hostname=localhost22.NodeId=323.[ndbd]24.hostname=localhost25.NodeId=426.[mysqld]27.NodeId=5028.29.安装30.shell> cd /home/mysql/mysqlc31.shell> scripts/mysql_install_db --no-defaults --datadir=/home/mysql/my_cluster/mysqld_data/[plain]view plain copy1.shell> cd /home/mysql2.shell> mkdir my_cluster my_cluster/ndb_data my_cluster/mysqld_data my_cluster/conf3.在conf目录添加以下2个配置文件(注意:“/home/mysql”需要替换为你自己的用户目录)4.f:6.[mysqld]7.ndbcluster8.datadir=/home/mysql/my_cluster/mysqld_data9.basedir=/home/mysql/mysqlc10.port=500011.12.config.ini:13.[ndb_mgmd]14.hostname=localhost15.datadir=/home/mysql/my_cluster/ndb_data16.NodeId=117.[ndbd default]18.noofreplicas=219.datadir=/home/mysql/my_cluster/ndb_data20.[ndbd]21.hostname=localhost22.NodeId=323.[ndbd]24.hostname=localhost25.NodeId=426.[mysqld]27.NodeId=5028.29.安装30.shell> cd /home/mysql/mysqlc31.shell> scripts/mysql_install_db --no-defaults --datadir=/home/mysql/my_cluster/mysqld_data/5. 运行进程需要启动management node, data nodes 与MySQL Server[plain]view plaincopy1.shell> cd ../my_cluster/2.①最先启动的是管理节点(ndb_mgmd)3.shell> /home/mysql/mysqlc/bin/ndb_mgmd -f conf/config.ini --initial --configdir=/home/mysql/my_cluster/conf/4.②启动第一个数据节点(ndbd)5.shell> /home/mysql/mysqlc/bin/ndbd -c localhost:11866.③启动第二个数据节点(ndbd)7.shell> /home/mysql/mysqlc/bin/ndbd -c localhost:11868.9.在启动MySQL服务引擎(mysqld)之前,一定要等到所有的数据节点全部启动完毕,然后才能启动MySQL服务引擎。
查看数据节点是否启动完毕的命令语句如下:10.shell> /home/mysql/mysqlc/bin/ndb_mgm -e show11.显示结果:12.Connected to Management Server at: localhost:118613.Cluster Configuration14.---------------------15.[ndbd(NDB)] 2 node(s)16.id=3 @127.0.0.1 (mysql-5.5.22 ndb-7.2.6, Nodegroup: 0, Master)17.id=4 @127.0.0.1 (mysql-5.5.22 ndb-7.2.6, Nodegroup: 0)18.19.20.[ndb_mgmd(MGM)] 1 node(s)21.id=1 @127.0.0.1 (mysql-5.5.22 ndb-7.2.6)22.23.24.[mysqld(API)] 1 node(s)25.id=50 (not connected, accepting connect from any host)26.27.④启动MySQL服务引擎28.shell> /home/mysql/mysqlc/bin/mysqld --defaults-file=conf/f &[plain]view plain copy1.shell> cd ../my_cluster/2.①最先启动的是管理节点(ndb_mgmd)3.shell> /home/mysql/mysqlc/bin/ndb_mgmd -f conf/config.ini --initial --configdir=/home/mysql/my_cluster/conf/4.②启动第一个数据节点(ndbd)5.shell> /home/mysql/mysqlc/bin/ndbd -c localhost:11866.③启动第二个数据节点(ndbd)7.shell> /home/mysql/mysqlc/bin/ndbd -c localhost:11868.9.在启动MySQL服务引擎(mysqld)之前,一定要等到所有的数据节点全部启动完毕,然后才能启动MySQL服务引擎。
查看数据节点是否启动完毕的命令语句如下:10.shell> /home/mysql/mysqlc/bin/ndb_mgm -e show11.显示结果:12.Connected to Management Server at: localhost:118613.Cluster Configuration14.---------------------15.[ndbd(NDB)] 2 node(s)16.id=3 @127.0.0.1 (mysql-5.5.22 ndb-7.2.6, Nodegroup: 0, Master)17.id=4 @127.0.0.1 (mysql-5.5.22 ndb-7.2.6, Nodegroup: 0)18.19.20.[ndb_mgmd(MGM)] 1 node(s)21.id=1 @127.0.0.1 (mysql-5.5.22 ndb-7.2.6)22.23.24.[mysqld(API)] 1 node(s)25.id=50 (not connected, accepting connect from any host)26.27.④启动MySQL服务引擎28.shell> /home/mysql/mysqlc/bin/mysqld --defaults-file=conf/f &启动成功后的进程如下:[plain]view plaincopy1.mysql 1738 0.1 0.5 575408 5752 ? Ssl 00:58 0:14 /home/mysql/mysqlc/bin/ndb_mgmd -f conf/config.ini --initial --configdir=/home/mysql/my_ cluster/conf/2.mysql 1751 0.0 0.0 101116 660 ? Ss 00:58 0:00 /home/mysql/mysqlc/bin/ndbd -c localhost:11863.mysql 1752 0.3 31.5 1048328 320704 ? Sl 00:58 0:41 /home/mysql/mysqlc/bin/ndbd -c localhost:11864.mysql 1790 0.0 0.0 101116 708 ? Ss 00:58 0:00 /home/mysql/mysqlc/bin/ndbd -c localhost:11865.mysql 1791 0.3 40.9 1048328 417228 ? Sl 00:58 0:38 /home/mysql/mysqlc/bin/ndbd -c localhost:11866.mysql 1835 0.0 5.4 886712 55296 pts/0 Sl 00:59 0:11 /home/mysql/mysqlc/bin/mysqld --defaults-file=conf/f7.mysql 1897 0.0 0.1 198204 2032 pts/1 S+ 01:00 0:00 /home/mysql/mysqlc/bin/mysql -h 127.0.0.1 -P 5000 -u root[plain]view plain copy1.mysql 1738 0.1 0.5 575408 5752 ? Ssl 00:58 0:14 /home/mysql/mysqlc/bin/ndb_mgmd -f conf/config.ini --initial --configdir=/home/mysql/my_ cluster/conf/2.mysql 1751 0.0 0.0 101116 660 ? Ss 00:58 0:00 /home/mysql/mysqlc/bin/ndbd -c localhost:11863.mysql 1752 0.3 31.5 1048328 320704 ? Sl 00:58 0:41 /home/mysql/mysqlc/bin/ndbd -c localhost:11864.mysql 1790 0.0 0.0 101116 708 ? Ss 00:58 0:00 /home/mysql/mysqlc/bin/ndbd -c localhost:11865.mysql 1791 0.3 40.9 1048328 417228 ? Sl 00:58 0:38 /home/mysql/mysqlc/bin/ndbd -c localhost:11866.mysql 1835 0.0 5.4 886712 55296 pts/0 Sl 00:59 0:11 /home/mysql/mysqlc/bin/mysqld --defaults-file=conf/f7.mysql 1897 0.0 0.1 198204 2032 pts/1 S+ 01:00 0:00 /home/mysql/mysqlc/bin/mysql -h 127.0.0.1 -P 5000 -u root6. 测试连接到MySQL服务器,并确认使用MySQL集群(NDB)可以创建表①连接到MySQL 服务器:[plain]view plaincopy1.shell> /home/mysql/mysqlc/bin/mysql -h 127.0.0.1 -P 5000 -u root2.mysql> create database clusterdb;use clusterdb;3.mysql> create table simples (id int not null primary key) engine=ndb;4.mysql> insert into simples values (1),(2),(3),(4);5.mysql> select * from simples;6.+----+7.| id |8.+----+9.| 3 |10.| 1 |11.| 2 |12.| 4 |13.+----+[plain]view plain copy1.shell> /home/mysql/mysqlc/bin/mysql -h 127.0.0.1 -P 5000 -u root2.mysql> create database clusterdb;use clusterdb;3.mysql> create table simples (id int not null primary key) engine=ndb;4.mysql> insert into simples values (1),(2),(3),(4);5.mysql> select * from simples;6.+----+7.| id |8.+----+9.| 3 |10.| 1 |11.| 2 |12.| 4 |13.+----+7. 停止服务MySQL服务必须手动停止,服务停止后,其他集群节点的停止可以使用管理节点(ndb_mgm)来[plain]view plaincopy1.shell> /home/mysql/mysqlc/bin/mysqladmin -u root -h 127.0.0.1 -P 5000 shutdown2.shell> /home/mysql/mysqlc/bin/ndb_mgm -e shutdown[plain]view plain copy1.shell> /home/mysql/mysqlc/bin/mysqladmin -u root -h 127.0.0.1 -P 5000 shutdown2.shell> /home/mysql/mysqlc/bin/ndb_mgm -e shutdown。