集群Cluster MySQL的安装配置和使用

发布时间:2020-05-28 14:20:03

来源:亿速云

阅读:233

作者:鸽子

MySQL Cluster MySQL集群

基本概念:

“NDB” 是一种“内存中”的存储引擎,它具有可用性高和数据一致性好的特点。

MySQL Cluster 能够使用多种故障切换和负载平衡选项配置NDB存储引擎,但在 Cluster 级别上的存储引擎上做这个最简单。MySQL Cluster的NDB存储引擎包含完整的数据集,仅取决于 Cluster本身内的其他数据。

管理(MGM)节点:这类节点的作用是管理MySQL Cluster内的其他节点,如提供配置数据、启动并停止节点、运行备份等。由于这类节点负责管理其他节点的配置,应在启动其他节点之前首先启动这类节点。MGM节点是用命令“ndb_mgmd”启动的。

数据节点:这类节点用于保存 Cluster的数据。数据节点的数目与副本的数目相关,是片段的倍数。例如,对于两个副本,每个副本有两个片段,那么就有4个数据节点。不过没有必要设置多个副本。数据节点是用命令“ndbd”启动的。

SQL节点:这是用来访问 Cluster数据的节点。对于MySQL Cluster,客户端节点是使用NDB Cluster存储引擎的传统MySQL服务器。通常,SQL节点是使用命令“mysqld -ndbcluster”启动的,或将“ndbcluster”添加到“my.cnf”后使用“mysqld”启动。

管理服务器(MGM节点)负责管理 Cluster配置文件和 Cluster日志。 Cluster中的每个节点从管理服务器检索配置数据,并请求确定管理服务器所在位置的方式。当数据节点内出现新的事件时,节点将关于这类事件的信息传输到管理服务器,然后,将这类信息写入 Cluster日志。

集群配置概述:

安装版本:mysql cluster 7.3.2

操作系统 :centos6.3(X64)

软件名称 :mysql-cluster-gpl-7.3.2-linux-glibc2.5-x86_64.tar.gz (通用版)

管理节点IP:192.168.0.202

数据节点-SQL节点IP:192.168.0.203

数据节点-SQL节点IP:192.168.0.204

安装依赖包:yum install -y glibc perl libaio-devel

x32位系统要安装兼容库组:yum groupinstall “Compatibility libraries”

一、管理节点安装配置

1、安装mysql-clustergroupadd mysql

useradd -g mysql -s /sbin/nologin mysql

tar -zxvf mysql-cluster-gpl-7.3.2-linux-glibc2.5-x86_64. tar .gz

mv mysql-cluster-gpl-7.3.2-linux-glibc2.5-x86_64 /usr/local/mysql-cluster

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

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

/usr/local/mysql/scripts/mysql_install_db --basedir= /usr/local/mysql --datadir= /usr/local/mysql/data --user=mysql & #初始化数据库

cp -rf /usr/local/mysql/bin/ndb_mgm * /usr/local/bin/ #复制ndb节点管理命令到本地,方便使用

2、修改mysql主配置文件vi /etc/my .cnf

[MYSQLD]

user = mysql

socket = /tmp/mysql .sock

basedir = /usr/local/mysql #安装目录

datadir = /usr/local/mysql/data #数据库存放目录

character-sets-server=UTF8

ndbcluster #运行NDB存储引擎

ndb-connectstring=192.168.0.202

lower_case_table_names=1 #表名是否区分大小写1为不区分,不然linux下表名是区分大小写的

[MYSQL_CLUSTER]

ndb-connectstring=192.168.0.202 #Mysql Cluster管理节点IP

3、创建mysql集群配置文件mkdir /var/lib/mysql-cluster

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

[ndbd default]

NoOfReplicas=2 #定义在Cluster环境中相同数据的份数,最大为4

DataMemory=256M #分配的数据内存大小,根据本机服务器内存适量来分配

IndexMemory=256M #设定用于存放索引(非主键)数据的内存段大小

#一个NDB节点能存放的数据量是会受到DataMemory和IndexMemory两个参数设置的约束,两者任何一个达到限制数量后,都无法再增加能存储的数据量。如果继续存入数据系统会报错“table is full”。

[ndb_mgmd]

nodeid=1

hostname =192.168.0.202

datadir= /var/lib/mysql-cluster/

[ndbd]

nodeid=2

hostname =192.168.0.203

datadir= /usr/local/mysql/data

[ndbd]

nodeid=3

hostname =192.168.0.204

datadir= /usr/local/mysql/data

[mysqld]

nodeid=4

hostname =192.168.0.203

[mysqld]

nodeid=5

hostname =192.168.0.204

保存退出!chown mysql.mysql /var/lib/mysql-cluster/config .ini

二、两台数据节点和SQL节点配置相同

1、安装mysql-clustertar -zxvf mysql-cluster-gpl-7.3.2-linux-glibc2.5-x86_64. tar .gz

mv mysql-cluster-gpl-7.3.2-linux-glibc2.5-x86_64 /usr/local/mysql

groupadd mysql

useradd -g mysql -s /sbin/nologin mysql

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

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

/usr/local/mysql/scripts/mysql_install_db --basedir= /usr/local/mysql --datadir= /usr/local/mysql/data --user=mysql & #初始化数据库

cp /usr/local/mysql/support-files/mysql .server /etc/init .d /mysqld

cp /usr/local/mysql/support-files/medium .cnf /etc/my .cnf

chmod +x /etc/init .d /mysqld

2、修改mysql配置文件vi /etc/my .cnf

[MYSQLD]

user=mysql

character_set_server=utf8

ndbcluster

ndb-connectstring=192.168.0.202

default-storage-engine=ndbcluster #设置默认是NDB存储引擎

datadir= /usr/local/mysql/data

basedir= /usr/local/mysql

[MYSQL_CLUSTER]

ndb-connectstring=192.168.0.202 #mysql cluster 管理节点IP

三、测试(先关闭三台服务器的防火墙(IPTABLES)与 Selinux)

1、启动管理节点ndb_mgmd -f /var/lib/mysql-cluster/config .ini --initial

netstat -tuplna | grep 1186 #默认连接端口1186,启动成功

tcp 0 0 0.0.0.0:1186 0.0.0.0:* LISTEN 1369 /ndb_mgmd

#--initial:第一次启动时加上,其它时候不要加,不然会数据清空,除非是在备份、恢复或配置变化后重启时。

如果启动出现报错:把config.ini里设置的nodeid都给删除即可!

2、启动两台数据节点和SQL节点

数据节点:/usr/local/mysql/bin/ndbd --initial

SQL节点:bin/mysqld_safe --user=mysql & 或 service mysqld start

3、查看集群状态

ndb_mgm -e show #显示管理节点和数据节点则配置成功

4、创建一个数据库验证是否同步

mysql -u root -p

Mysql>create database  test ;

Mysql>use  test ;

Mysql>create table abc ( id  int) engine=ndbcluster; #指定数据库表的引擎为NDB,否则同步失败

Mysql>Insert into abc ()values (1);

Mysql> select  * from abc;

#此时看两个数据是否数据一致,如果一致说明集群已经成功!

注意事项:

1.在建表的时候一定要用ENGINE=NDB或ENGINE=NDBCLUSTER指定使用NDB集群存储引擎,或用ALTER TABLE选项更改表的存储引擎。

2.NDB表必须有一个主键,因此创建表的时候必须定义主键,否则NDB存储引擎将自动生成隐含的主键。

3.Sql节点的用户权限表仍然采用MYISAM存储引擎保存的,所以在一个Sql节点创建的MySql用户只能访问这个节点,如果要用同样的用户访问别的Sql节点,需要在对应的Sql节点追加用户。

四、管理和维护命令

关闭mysql集群:ndb_mgm -e shutdown

重启mysql集群:ndb_mgmd -f /var/lib/mysql-cluster/config.ini

重启数据节点:/usr/local/mysql/bin/ndbd

启动SQL节点:/usr/local/mysql/bin/mysqld_safe --user=mysql & 或 service mysqld restart

查看mysql状态:ndb_mgm -e show

启动顺序:

管理节点 -> 数据节点 -> SQL节点

关闭顺序:

SQL节点 -> 数据节点 -> 管理节点

mysql集群初始化配置_集群Cluster MySQL的安装配置和使用相关推荐

  1. centos snmp配置_如何在CentOS系统中安装配置SNMP服务

    配置snmpd.conf文件需要更改五个地方(默认配置基础上): 1.配置snmp团体名(默认是public): com2sec notConfigUser default public 建议更改pu ...

  2. oracle tns 代理配置_史上最全Oracle安装配置图文教程,含TNS配置

    12C R1多了这个步骤 出现以下错误,点击"全部忽略" 有时候,如果当前操作系统用户名有中文或有空格,这两个步骤会报错,如果报错,oracle服务都不会安装成功,1521端口也没 ...

  3. 即时通讯源码-即时通讯集群服务免费-通讯百万并发技术-Openfire 的安装配置教程手册-哇谷即时通讯集群方案-哇谷云-哇谷即时通讯源码

    即时通讯源码-即时通讯集群服务免费-通讯百万并发技术-Openfire 的安装配置教程手册-哇谷即时通讯集群方案-哇谷云 1,openfire开发环境配置 很久没有写点东西了.最近很烦心,领导不给力. ...

  4. MySQL在Windows和Linux平台上多版本多实例安装配置方法(5.5、5.6、5.7、8.0)

    MySQL在Windows和Linux平台上多版本多实例安装配置方法(5.5.5.6.5.7.8.0) Linux下MySQL 5.5.5.6和5.7的RPM.二进制和源码安装 参考: http:// ...

  5. CentOS7下Mysql Cluster 7.4安装配置

    Mysql Cluster 7.4安装配置(部分图片未显示) 1 环境说明 1.1 所依赖环境 CentOS7.2  (需关闭防火墙) JDK7 1.2 五大服务器IP部署 管理节点 MGM1:10. ...

  6. Web基础配置篇(十一): Zookeeper的安装配置及使用

    Web基础配置篇(十一): Zookeeper的安装配置及使用 一.概述 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop ...

  7. redis cli 删除key 模糊_Web基础配置篇(六): Redis的安装配置及基本操作

    Web基础配置篇(六): Redis的安装配置及基本操作 一.概述 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的A ...

  8. Web基础配置篇(十七): Kubernetes dashboard安装配置

    Web基础配置篇(十七): Kubernetes dashboard安装配置 一.概述 Kubernetes 简称为K8S,是用于自动部署,扩展和管理容器化应用程序的开源系统.Kubernetes的目 ...

  9. mysql集群与分布式_集群与分布式的区别

    什么是集群 集群(cluster)就是一组计算机,它们作为一个整体向用户提供一组网络资源,这些单个的计算机系统就是集群的节点(node).集群提供了以下关键的特性.可扩展性.集群的性能不限于单一的服务 ...

最新文章

  1. 初版python计算器
  2. day16-Dom样式操作
  3. 详解在Visual Studio中使用git版本系统
  4. oracle的split函数
  5. centos6.5 Building the main Guest Additions module
  6. 从质疑到成为必选项,低代码技术发展及 2022 展望
  7. 中科院C语言应聘机试编程题6,中科院计算所保研笔试+机试+面试经验分享
  8. JQuery 各节点获取函数:父节点,子节点,兄弟节点
  9. vue递归组件eventBus策略解决父子组件通讯问题
  10. html5视频全屏背景插件(支持全屏背景,标签实现)
  11. sentaurus TCAD的安装与使用
  12. android apktool反编译,apktool反编译工具
  13. c#窗体开发俄罗斯方块小游戏
  14. 网络安全工程师面试总结
  15. Lonlife-ACM 1000 - Spoon Devil's 3-D Matrix(最小生成树)——“玲珑杯”acm比赛-试运行赛
  16. 有道云笔记同步IT笔试面试资源
  17. C/C++游戏项目完整教程:《坦克大战》
  18. 什么是在制品限制?通过这篇文章,让你搞明白
  19. 飞塔防火墙密码恢复。
  20. 天宝营养冲刺深交所:年营收12.5亿 拟募资7亿

热门文章

  1. 云计算在未来一定是不可或缺的
  2. Arduino从DHT11读取温湿度数据并显示在1602LCD
  3. Java this关键字
  4. Xamarin 跨移动端开发系列(01) -- 搭建环境、编译、调试、部署、运行
  5. NIO学习--缓冲区
  6. Android保存设置的PreferenceActivity
  7. [转]The Top 10 Attributes of a Great Programmer
  8. Windows 2003性能监视器中的计数器名称变成数字的解决方法
  9. 基于ARM+DSP进行应用开发-经验共享
  10. (一)低功耗设计目的与功耗的类型