ubuntu mysql集群搭建_ubuntu server部署mysql集群

简介

[说明本次部署的内容,目的等等]

本部署文档的目的是如何在ubuntu server上进行mysql的群集部署。

前期准备

在进行本文档操作前,需要完成如下前期步骤:

1.安装3台ubuntu server服务器;

Server1: ndbd 192.168.68.5

Server2: ndbd 192.168.68.6

Server3: mysqld –ndb-cluster 192.168.68.8

ndbd(192.168.68.5\192.168.68.6): 数据库节点,存放数据。

mysqld –ndb-cluster(192.168.68.8): MySQL服务器节点,管理节点,管理群集。

注:

本实验在ubuntu server(8.04)实现

管理节点:server3(192.168.68.8)存储节点:server1(192.168.68.5),server2(192.168.68.6)

2.3台server均安装mysql - server数据库。

部署概要

1.安装ubuntu服务器(本实验使用为8.04);

2.安装mysql – server数据库;

3.这三台服务器上配置my.cnf;

4.管理节点(192.168.68.8)上配置ndb_mgmd.cnf;

5.管理节点服务器上启动mysql-ndb-mgm;

6.存储节点上(192.168.68.5\6)启动mysql-ndb;

7.3台服务器分别启动mysql-ndb服务;

8.测试管理节点。

部署步骤

安装Ubuntu服务器

1.安装ubuntu服务器,安装过程中安装msyql(也可单独安装)、openssh服务。

群集配置

ndbcluster

ndb-connectstring=192.168.68.8

[mysqldump]

quick

quote-names

max_allowed_packet = 16M

[mysql]

#no-auto-rehash # faster start of mysql but no tab completition

[isamchk]

key_buffer = 16M

#

# * NDB Cluster

#

# See /usr/share/doc/mysql-server-*/README.Debian for more information.

#

# The following configuration is read by the NDB Data Nodes (ndbd processes)

# not from the NDB Management Nodes (ndb_mgmd processes).

#

[MYSQL_CLUSTER]

ndb-connectstring=192.168.68.8

#

# * IMPORTANT: Additional settings that can override those from this file!

# The files must end with ‘.cnf’, otherwise they’ll be ignored.

#

!includedir /etc/mysql/conf.d/

ubuntu@ubuntu:~$

提示

/etc/mysql/my.cnf主要配置如下内容:

ndbcluster

ndb-connectstring=192.168.68.13

和添加

[MYSQL_CLUSTER]

ndb-connectstring=192.168.68.13

三台服务器都需要配置

2.管理节点服务器中配置(192.168.68.8)中配置ndb_mgmd.cnf。

复制:

/usr/share/doc/mysql-server-5.0/examples/ndb_mgmd.cnf 至/etc/mysql/ndb_mgmd.cnf

3.管理节点服务器中配置(192.168.68.8)中编辑ndb_mgmd.cnf。

ubuntu@ubuntu:~$ sudo vim /etc/mysql/ndb_mgmd.cnf

[NDBD DEFAULT]

NoOfReplicas=2

DataMemory=10MB

IndexMemory=25MB

MaxNoOfTables=256

MaxNoOfOrderedIndexes=256

MaxNoOfUniqueHashIndexes=128

[MYSQLD DEFAULT]

[NDB_MGMD DEFAULT]

[TCP DEFAULT]

[NDB_MGMD]

Id=1 # the NDB Management Node (this one)HostName=192.168.68.8

DataDir= /var/lib/mysql-cluster

[NDBD]

Id=2 # the first NDB Data Node

HostName=192.168.68.5

DataDir= /var/lib/mysql-cluster

[NDBD]

Id=3 # the second NDB Data Node

HostName=192.168.68.6DataDir=/var/lib/mysql-cluster

[MYSQLD]

Id=4 # the first SQL node

HostName=192.168.68.5

[MYSQLD]

Id=5 # the first SQL node

HostName=192.168.68.6

4.服务器管理节点服务器(192.168.68.8)中的mysql-ndb-mgm服务。

sudo /etc/init.d/mysql-ndb-mgm start

5.启动数据存储服务器(192.168.68.5\6)中服务mysql-ndb。

sudo /etc/init.d/mysql-ndb start

6.最后启动,3台服务器中(192.168.68.5\6\8)启动mysql服务。

sudo /etc/init.d/mysql start

群集测试

1.节点管理服务器运行ndb_mgm(192.168.68.8)。

ubuntu@ubuntu:~$ 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.68.5(Version: 5.0.51, Nodegroup: 0)

id=3 @192.168. 68.6 (Version: 5.0.51, Nodegroup: 0, Master)

[ndb_mgmd(MGM)] 1 node(s)

id=1 @192.168. 68.8 (Version: 5.0.51)

[mysqld(API)] 2 node(s)

id=4 @192.168. 68.5 (Version: 5.0.51)

id=5 @192.168. 68.6 (Version: 5.0.51)

ndb_mgm>

提示

1.表必须用ENGINE=NDB或ENGINE=NDBCLUSTER选项创建,或用ALTER TABLE选项更改,以使用NDB Cluster存储引擎在 Cluster内复制它们。如果使用mysqldump的输出从已有数据库导入表,可在文本编辑器中打开SQL脚本,并将该选项添加到任何表创建语句,或用这类选项之一替换任何已有的ENGINE(或TYPE)选项。

2.另外还请记住,每个NDB表必须有一个主键。如果在创建表时用户未定义主键,NDB Cluster存储引擎将自动生成隐含的主键。(注释:该隐含 键也将占用空间,就像任何其他的表。

3.索引一样。由于没有足够的内存来容纳这些自动创建的键,出现问题并不罕见)。

4.当你在一个节点上运行create database mydb;你去其他sql node上执行show databases;将不能看到mydb,你需要创建它,然后use mydb; show tables;你将看到同步的表。

2.存储节点1 (192.168.68.5)中创建数据库(test)与表(table1)。

ubuntu@ubuntu:~$ mysql -uroot -p

Enter password:

Welcome to the MySQL monitor. Commands end with ; or g.

Your MySQL connection id is 7

Server version: 5.0.51a-3ubuntu5.1 (Ubuntu)

Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the buffer.

mysql> create database test;

Query OK, 1 row affected (0.00 sec)

mysql> use cluster

Database changed

mysql> create table table1(nub int(10),primary key(nub),) engine = ndbcluster;

charset utf8;

Query OK, 0 rows affected (1.07 sec)

mysql>insert into table1 values(1);

Query OK, 1 row affected (0.12 sec)

3.存储节点2(192.168.68.6)中创建数据库(test)。

注:节点2中不需要创建table1表,

ubuntu@ubuntu:~$ mysql –u root -p

Enter password:

Welcome to the MySQL monitor. Commands end with ; or g.

Your MySQL connection id is 7

Server version: 5.0.51a-3ubuntu5.1 (Ubuntu)

Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the buffer.

mysql> show databases;

+——————–+

| Database |

+——————–+

| information_schema |

| mysql |

+——————–+

2 rows in set (0.13 sec)

mysql>create database test;

Query OK, 1 row affected (0.00 sec)

mysql> show databases;

+——————–+

| Database |

+——————–+

| information_schema |

| test|

| mysql |

+——————–+

3 rows in set (0.13 sec)

mysql> use test;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

mysql> show tables;

+——————-+

| Tables_in_cluster |

+——————-+

| table1 |

+——————-+

1 row in set (0.01 sec)

mysql> select * from table1;

+—-+———–+

| nub |

+—-+———–+

| 1 |

+—-+———–+

1 rows in set (0.03 sec)

提示

在节点2(192.168.68.6)中,可观察到,虽未创建table1表,但是能够查看到该表,并能够看到表中的数据,验证结果mysql群集实现。

4.将管理节点(192.168.68.8)停掉,在存储节点1服务器(192.168.68.5)中创建table2(使用ENGINE=NDBCLUSTER),在存储节点2服务器(192.168.68.6)上“show tables”也可以看到新创建的表table2。

提示

群集实现后,管理节点服务器可以停掉,群集仍然可以实现。

总结:如创建表时,未在创建表语句后添加ENGINE=NDB或ENGINE=NDBCLUSTER,则该表不会在群集server中同步。

管理节点、存储节点,也可以同在一台机器上,或两台msyql数据库server服务器,其中一台同时为管理节点与存储节点,而另一台仅为存储节点,这样的设计均是可以的。

在实际过程中可以根据实际需要而部署。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/305940.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用 dotnet-monitor 分析.NET 应用程序

dotnet-monitor 是 .NET Core 命令行接口 (CLI) 工具, 可以很方便的在dotnet环境中分析我们的应用程序,需要注意的是,目前它还只是一个实验性的工具在这之前,我们使用的有 dotnet-counters,dotnet-dump 和 dotnet-trace&#xff0…

mysql数据库查看用户名_mysql怎么查看用户名?

我们在使用mysql的时候,有时候需要来查看当前用户。本篇文章将和大家讲述mysql怎么查看用户名,感兴趣的朋友可以了解一下。启动数据库:[rootserver ~]# mysqld_safe &[1] 3289[rootserver ~]# 130913 08:19:58 mysqld_safe Logging to /u…

如何实现 ASP.NET Core WebApi 的版本化

Web API 的版本化可以尽量保证在相同url情况下保留一个 api 的多个版本,通常一个 webapi 会有多个client,这些client包括:app,web,html5,crawl 等等同构或者异构的平台,当 api 升级之后&#xf…

mysql查询重复的名字_Mysql中like用法:查询名字中含有风字的学生信息

一、表名和字段–1. 学生表 student (s_id,s_name,s_birth,s_sex) –学生编号,学生姓名,出生年月,学生性别–2. 课程表 course (c_id,c_name,t_id) –课程编号,课程名称,教师编号–3. 教师表 teacher (t_id,t_name) –…

mysql单行数据64k_字段数据大于64K的解决方案 | 学步园

方法一:在SQL Server Management Studio配置 max text repl size 选项:1、在对象资源管理器中,右键单击服务器并选择“属性”。2、单击“高级”节点。3、在“杂项”下,将“最大文本复制大小”选项更改为所需的值。方法二&#xff…

一次Task.Run异常问题的排查

最近在测试一个功能代码时发现一个非常奇怪的问题,主要是Task.Run引起一些不符合逻辑的错误,以下针对这一问题排查的总结。问题代码可以建个控制台程序来运行以下代码class Program{static User user new User();static void Main(string[] args){for (…

git maven 一键部署_Jenkins Git Maven搭建自动化部署项目环境 邮件通知

简介折腾了两个晚上,趁着今晚比较有空,把jenkinsgitmaven搭建自动化部署项目环境搭建的过程记录一下,这里我把github作为git的远程仓库(https://github.com/jacky- lulu/cxf_demo-Maven-Webapp)系统:centos6.5maven: Apache Maven 3.3…

在.NET Core 中收集数据的几种方式

APM是一种应用性能监控工具,可以帮助理解系统行为, 用于分析性能问题的工具,以便发生故障的时候,能够快速定位和解决问题, 通过汇聚业务系统各处理环节的实时数据,分析业务系统各事务处理的交易路径和处理时间,实现对应…

改进你的代码-扩展了一下IEnumerableT

背景今天用EF写东西,觉得IEnumerable里面写where()条件老是写if判断很麻烦,这样:if (!string.IsNullOrWhiteSpace(key)){list list.Where(u > u.Name.Contains(key)).ToList();}if (!string.IsNullOrWhiteSpace(key)){list list.Where(u…

java 连接池连接mysql数据库需要哪些jar包_DBCP-基于Java8导入DBCP连接池所需JAR包并编写DBCPUtils工具类...

上述五个jar包缺一不可下载解压后,进入解压出的文件夹将这五个jar包复制出来放入自己创建的myJar文件夹中(myJar文件夹创建与说明)接下来就可以在工程中进行使用package utils;import com.mysql.cj.jdbc.Driver;import org.apache.commons.dbcp2.BasicDataSource;import java.s…

C# 在自定义的控制台输出重定向类中整合调用方信息

C# 在自定义的控制台输出重定向类中整合调用方信息目录C# 在自定义的控制台输出重定向类中整合调用方信息一、前言二、输出重定向基础版三、输出重定向进阶版(传递调用方信息)四、后记及资源独立观察员 2021 年 1 月 6 日一、前言众所周知,在…

mac 上mysql怎么卸载不了_mac的mysql怎么卸载?

Mac下卸载mysql的方法:1、关闭mysql查看mysql是否启动:ps -ef |grep mysql输入:kill -9 (./mysqld前面第二个数字,这里是627) 然后回车,关闭mysql。2、卸载:在Mac终端使用下面的命令删除所有mysql文件即可s…

C#实现网页加载后将页面截取成长图片

背景最近再做一个需求,需要对网页生成预览图,如下图但是网页千千万,总不能一个个打开,截图吧;于是想着能不能使用代码来实现网页的截图。其实要实现这个功能,无非就是要么实现一个仿真浏览器,要…

mysql 8 配置参数优化_mysql8 参考手册--配置非持久性优化器统计参数

本节介绍如何配置非持久性优化器统计信息。当innodb_stats_persistentOFF或使用创建或更改单个表时,Optimizer统计信息不会保留在磁盘 上 STATS_PERSISTENT0。相反,统计信息存储在内存中,并且在服务器关闭时会丢失。统计信息还可以通过某些操…

“既然计划没有变化快,那制订计划还有个卵用啊!”

这是头哥侃码的第229篇原创每年年初,我的朋友圈里都会炸出不少在打完鸡血之后,迫不及待向全世界宣告自己 “新年Flag” 的人。有的人,把健身、养生设为目标,什么不暴瘦20斤不换头像呀,什么再也不吃炸鸡啤酒啦&#xff…

图书管理系统jsp代码_【程序源代码】使用Java开发的图书管理系统

关键字:java 管理系统 正文 | 内容01—【概述】使用Java开发的图书管理系统,读者可以注册登录,登录时会判断账号类型再分别跳到各自对应的页面,读者可以查找,借阅,还书,查看历史借阅记录&#x…

老人言:尽量用异步

官方和老人言,asp.net core中尽量用异步,为什么呢?接下来是个小demo,看看同步异步的差别吧,或许通过这个demo,就明白官方和老人的良苦用心了。1、创建一个sql server的表CREATE TABLE [dbo].[Students]([St…

mysql函数保留小数_MySql自定义函数-关于保留小数位的特殊需求

背景昨天,关于价格详情接口又来了一个小需求,而且有点特别。价格显示:改为保留两位小数,没错,就是保留两位小数。大家是不是想说这没啥特别的。。。数据库都有函数搞定了。例如四舍五入的ROUND(x,d),直接截…

整合.NET WebAPI和 Vuejs——在.NET单体应用中使用 Vuejs 和 ElementUI

.NET简介.NET 是一种用于构建多种应用的免费开源开发平台,例如:Web 应用、Web API 和微服务云中的无服务器函数云原生应用移动应用桌面应用1). Windows WPF2). Windows 窗体3). 通用 Windows 平台 (UWP)游戏物联网 (IoT)机器学习控制台应用Windows 服务跨…

python 进程池_python进程池

当需要创建的子进程数量不多时,可以直接利用multiprocessing中的Process动态成生多个进程,但如果是上百甚至上千个目标,手动的去创建进程的工作量巨大,此时就可以用到multiprocessing模块提供的Pool方法。初始化Pool时&#xff0c…