MySQL集群,例如:利用mysql cluster ,mysql proxy,mysql replication,drdb等等

有人会问mysql集群,根分表有什么关系吗?虽然它不是实际意义上的分表,但是它启到了分表的作用,做集群的意义是什么呢?为一个数据库减轻负担,说白了就是减少sql排队队列中的sql的数量,举个例子:有10个sql请求,如果放在一个数据库服务器的排队队列中,他要等很长时间,如果把这10个sql请求,分配到5个数据库服务器的排队队列中,一个数据库服务器的队列中只有2个,这样等待时间是不是大大的缩短了呢?这已经很明显了。所以我把它列到了分表的范围以内,我做过一些mysql的集群:

Linux mysql proxy 的安装,配置,以及读写分离

mysql replication 互为主从的安装及配置,以及数据同步

优点:扩展性好,没有多个分表后的复杂操作(PHP代码)

缺点:单个表的数据量还是没有变,一次操作所花的时间还是那么多,硬件开销大。

集群资料:http://www.th7.cn/db/mysql/201409/72633.shtml

ex:

1:

Windows server 2003 192.168.119.88(管理节点,存储节点,SQL节点)
Windows server 2003 192.168.119.87(存储节点,SQL节点)

2、安装程序

在两台机器上面同时进行

(1)在mysql cluster官网:

中下载msi安装软件mysql-cluster-gpl-7.4.11-win32.msi

可能需要Oracle用户注册后下载

安装完成后

(2)在命令行中切换到mysql安装后bin目录下执行:

mysqld --install mysql 注册服务

(3)设置环境变量:

将mysql安装后bin目录添加到环境变量中。

3、创建配置文件

(1)在10.135.10.51上创建c:/cluster/config.ini文件,内容为:

[ndbd default]

NoOfReplicas=2

 

[ndb_mgmd] #管理节点

NodeId=1

HostName=192.168.119.88

DataDir=c:/cluster/data

 

[ndbd] #数据节点

NodeId=21

HostName=192.168.119.88

DataDir=c:/cluster/ndbdata

 

[ndbd] #数据节点

NodeId=22

HostName=192.168.119.87

DataDir=c:/cluster/ndbdata

 

[mysqld] #sql节点

NodeId=11

HostName=192.168.119.88

 

[mysqld] #sql节点

NodeId=12

HostName=192.168.119.87

注意:在88机器c:/cluster目录下创建data和ndbdata目录。在87机器c:/cluster目录下创建ndbdata目录。

(2)在两台机器上创建mysql配置文件my.ini

在mysql cluster安装目录下找到my-default.ini文件,复制到当前目录并重命名为my.ini。

在my.ini尾部添加如下内容:

 

[mysql_cluster]

 

ndb-connectstring=192.168.119.88

 

 

 

[mysqld]

 

ndbcluster

 

ndb-connectstring=192.168.119.88

4、启动mysqlcluster(在192.168.119.88中执行)

(1)打开新cmd窗口

ndb_mgmd.exe --config-file=c:/cluster/config.ini--configdir=c:/cluster

(2)打开新cmd窗口

ndbd.exe --initial        /*首次执行时加入--initial参数*/

(3)打开新cmd窗口

mysqld.exe--default-file="C:/ProgramFiles/MySQL/MySQL Cluster 7.4/my.ini"

执行完成后启动mysql:

net start mysql

5、在192.168.119.87中执行:

打开新cmd窗口:

ndbd.exe

打开新cmd窗口

mysqld.exe--default-file="C:/ProgramFiles/MySQL/MySQL Cluster 7.4/my.ini"

执行完成后启动mysql:

net start mysql

6、查看安装情况

在192.168.119.88或192.168.119.87上打开cmd窗口,执行

ndb_mgm.exe

ndb_mgm>show

如图所示。

其中,MGM为管理节点,API(mysqld)为SQL节点,NDB为数据节点。

7.在任意一台机器上使用Navicat创建一张存储引擎为ndbcluster的表,并在表中添加一些测试数据。在另外一台机器上查看,可以看到数据库已经同步。

注意点:

1:DataDir=c:/cluster/ndbdata目录必须要创建不要写错会导致问题

       2:mysql安装完成后,手动注册服务mysqld --install mysql 注册服务

3:远程登录mysql的授权语句;初始化时用户root密码为空。

GRANT ALL PRIVILEGES ON *.*TO 'root'@'192.168.118.130' WITH GRANT OPTION;

4:创建表语句

CREATETABLE `test` (

`id` varchar(32) NOT NULL,

`name` varchar(32) NOT NULL

) ENGINE=ndbcluster DEFAULTCHARSET=latin1

成功截图

mysql分布式集群实现原理的更多相关文章

  1. MySQL分布式集群之MyCAT(转)

    原文地址:http://blog.itpub.net/29510932/viewspace-1664499/ 隔了好久,才想起来更新博客,最近倒腾的数据库从Oracle换成了MySQL,研究了一段时间 ...

  2. 如何搭建一个 MySQL 分布式集群

    1.准备集群搭建环境 使用6台虚拟机来搭建 MySQL分布式集群 ,相应的实验环境与对应的MySQL节点之间的对应关系如下图所示: 管理节点(MGM):这类节点的作用是管理MySQLCluster内的 ...

  3. MySQL分布式集群之MyCAT(三)rule的分析【转】

    首先写在最前面,MyCAT1.4的alpha版本已经发布了,这里面修复了不少的bug,也完善了一细节,之前两篇博客已经做了一些修改 ---------------------------------- ...

  4. MySQL分布式集群之MyCAT(二)【转】

    在第一部分,有简单的介绍MyCAT的搭建和配置文件的基本情况,这一篇详细介绍schema的一些具体参数,以及实际作用        首先贴上自己测试用的schema文件,双引号之前的反斜杠不会消除,姑 ...

  5. MySQL分布式集群之MyCAT(一)简介【转】

    隔了好久,才想起来更新博客,最近倒腾的数据库从Oracle换成了MySQL,研究了一段时间,感觉社区版的MySQL在各个方面都逊色于Oracle,Oracle真的好方便!好了,不废话,这次准备记录一些 ...

  6. 抄来的,占个位儿【百度架构师是怎样搭建MySQL分布式集群】

    1.准备集群搭建环境 使用6台虚拟机来搭建MySQL分布式集群,相应的实验环境与对应的MySQL节点之间的对应关系如下图所示:     管理节点(MGM):这类节点的作用是管理MySQLCluster ...

  7. 分布式集群Session原理及实现共享

    1.什么是Session/Cookie? 用户使用网站的服务,基本上需要浏览器与Web服务器的多次交互.HTTP协议本身是无状态的,当用户的第一次访问请求结束后,后端服务器就无法知道下一次来访问的还是 ...

  8. Mysql分布式集群

    一.准备 集群: 192.168.1.191  管理节点192.168.1.192  管理节点192.168.1.193  数据节点和API节点 192.168.1.194  数据节点和API节点 安 ...

  9. 【Database】Mysql分布式集群学习笔记

    一.sql 的基本操作 (2018年11月29日,笔记) (1)数据库相关操作 创建数据库.查看数据库.删除数据库 #. 创建数据库 create database mytest default ch ...

随机推荐

  1. Golang入门教程(一)GOPATH与工作空间(Windows)

    https://github.com/astaxie/build-web-application-with-golang/blob/master/zh/01.2.md Windows 环境: 下面我就 ...

  2. Centos7网络配置(VMware)

    在VM虚拟机上装了Centos7,想要用xshell5连接操作,配置网络花了整整一个上午的时间,真是心酸. 登陆后,使用命令 ip addr查看了本机的网络 可以看到我的网络配置文件是ens33, 使 ...

  3. [转]google gflags 库完全使用

    简单介绍 gflags 是 google 开源的用于处理命令行参数的项目. 安装编译 项目主页:gflags ➜ ~ git clone https://github.com/gflags/gflag ...

  4. 【逆向知识】PE ASLR

    1.知识点 微软从windows vista/windows server 2008(kernel version 6.0)开始采用ASLR技术,主要目的是为了防止缓冲区溢出 ASLR技术会使PE文件 ...

  5. 002_IO磁盘深入理解

    一.如何测试云硬盘 https://www.ustack.com/blog/how-benchmark-ebs/#fio

  6. mysql高可用架构 -> MHA环境准备-02

    环境准备 环境检查(三个测试节点的环境都应该是一样的,只有ip不同) [root@db01 bin]# cat /etc/redhat-release //系统版本 CentOS Linux rele ...

  7. 06 Frequently Asked Questions (FAQ) 常见问题解答 (常见问题)

    Frequently Asked Questions (FAQ) Origins 起源 What is the purpose of the project? What is the history ...

  8. 经典面试题:js继承方式下

    上一篇讲解了构造函数的继承方式,今天来讲非构造函数的继承模式. 一.object()方法 json格式的发明人Douglas Crockford,提出了一个object()函数,可以做到这一点. fu ...

  9. 添加自签发的 SSL 证书为受信任的根证书

    原文:http://cnzhx.net/blog/self-signed-certificate-as-trusted-root-ca-in-windows/ 添加自签发的 SSL 证书为受信任的根证 ...

  10. Effective STL 学习笔记14: Use reserve to avoid unnecessary reallocations.

    vector 和 string 容器在动态插入一个新的对象时,如果容器内空间不够,该容器会: 重新分配空间 通常的做法是分配当前 Capacity 大小两倍的空间. 将旧空间中的所有元素拷贝进新的空间 ...