使用mysql-mmm和mysql主从同步部署mysql高可用集群
A、B主机设置
mysql> grant replication slave on *.* to user@"%" identified by "1";
A主机
mysql> change master to master_host="192.168.100.101",master_user="user",master_password="1",master_log_file="master2.000001",master_log_pos=106;
mysql> slave start;
B主机
mysql> change master to master_host="192.168.100.100",master_user="user",master_password="1",master_log_file="master1.000001",master_log_pos=106;
mysql> slave start;
?
C主机
mysql> change master to master_host="192.168.100.101",master_user="user",master_password="1",master_log_file="master2.000001",master_log_pos=106;
D主机
mysql> change master to master_host="192.168.100.101",master_user="user",master_password="1",master_log_file="master2.000001",master_log_pos=106;
?
tar xf mysql-mmm-2.2.1.tar.gz
cd mysql-mmm-2.2.1
make install
?
mmm_common.conf——所有服务器都需配置,都一样
作用:指定集群中服务器的角色和使用的虚拟IP地址
?
数据库服务器都设置数据库授权
mysql> grant replication client on *.* to monitor@"%" identified by "monitor";
mysql> grant replication client,process,super on *.* to agent@"%" identified by "agent";
?
所有的数据库服务器都要配置
vim /etc/mysql-mmm/mmm_agent.conf????????
include mmm_common.conf????????//加载mmm_common.conf
this 主机名????????//指定自己的主机名
?
监控配置
day9-mysql集群
标签:
小编还为您整理了以下内容,可能对您也有帮助:
什么是MySQL集群?带你全面掌握MySQL集群原理
如果Master收到所有 Slave的OK消息,它就会向所有Slave发送提交消息,告诉Slave提交该事务;
如果Slave收到提交请求,它们就会提交事务,并向Master发送事务已提交 的确认;
如果Slave收到取消请求,它们就会撤销所有改变并释放所占有的资源,从而中止事务,然后向Masterv送事务已中止的确认。
随着计算机和信息技术的迅猛发展和普及,行业应用系统的规模迅速扩大,行业应用所产生的数据量量呈爆炸式增长,类似于MySQL集群这样的技术得到了广泛的运用,MySQL集群原理的运用就显得尤其重要。
动力节点的MySQL集群教程 ,对于MySQL集群技术的应用场景有着详细的介绍,能够有效帮助我们学以致用, 教程主要从MySQL集群架构解析到架构部署再到集群架构测试,一步步带你部署企业级的MySQL数据库集群项目,熟悉各个环节技术点,提升数据库架构设计能力。
https://www.bilibili.com/video/BV1Rg4y1i7VR
http://www.bjpowernode.com/?toutiao
•001.MySQL集群视频教程:主从复制介绍
•002.MySQL集群视频教程:主从复制结构
•003.MySQL集群视频教程:主从复制流程原理
•004.MySQL集群视频教程:多实例安装
•005.MySQL集群视频教程:多实例链接
•006.MySQL集群视频教程:一主多从-配置
•007.MySQL集群视频教程:-一主多从测试
•008.MySQL集群视频教程:双主双从配置
•009.MySQL集群视频教程:双主双从测试
•010.MySQL集群视频教程:多数据源-环境搭建
•011.MySQL集群视频教程:多算数据源实现
•012.MySQL集群视频教程:修复MySLQ主从复制
•013.MySQL集群视频教程:多数据源的问题
•014.MySQL集群视频教程:动态数据源
•015.MySQL集群视频教程:动态数据源执行流程
•016.MySQL集群视频教程:SpringBoot集成多数据源
•017.MySQL集群视频教程:SpringBoot集成多数据源问题
•018.MySQL集群视频教程:SpringBoot集成动态数据源
mysql集群是什么意思
开在一台服务器上,而是开到一个群组的所有服务器上,一般20台为一个群组。
问:集群空间跟传统空间的最大不同是什么?
答:集群空间有数据同步和宕机检测与智能解析域名的功能。
问:集群空间为什么会比传统空间稳定?
答:因为当客户开通一个集群空间后集群空间系统就会把客户的空间和站点资料同步到同
一个群组的所有服务器上,一但当前访问的服务器不能正常工作时,智能系统就会把客
户的域名解析到能正常工 作的服务器上。
问:站点数据同步需要多长时间?
答:新开设的站点数据同步到所有服务器上大概需要一个小时。如果站点数据小会更快。
问:站点参数(如:加减域名绑定)修改多长时间同步?
答:10分钟内同步成功
问:当服务器坏了多长时间会转移到正常的服务器上。
答:最长不会超过1分钟,因为宕机检测30秒一次,同时域名的重新解析也需要30秒才生
效。
问:站点跟数据库是否可以开在同一台服务器上?
答:最好不要,因为集群系统暂时还没同步大型数据库(mssql;mysql)。所以当服务器不
能正常工作时,集群系统只是把您的站点转移到别的服务器上,并没把数据库也同时转
移过去,所以最好把数据库开设在群外的服务器上。
问:集群空间是否支持开通php空间?
答:可以支持php,但还没办法同步mysql数据同步。将在二期工程实现.
问:集群空间跟传统空间使用上有什么不同?
答:考虑到用户的方便使用,我们在设计的时候就本着尽量减少手工操作的思路,所以在使
用方面他们没有太大的区别,唯一的区别是我们用免费提供的二级域名代替原来的IP,
也就是说使用传统的空间时,用户是把自己的域名解析到IP上,现在是作别名
(CNAME)解析到我们免费提供的二级域名,和登录FTP的地址是我们提供的二级域
名。
问:域名本身(不带www)如何作别名(CNAME)解析?
答:作别名解析的时候主机名不能为空,如果要给域名本身作别名解析请在主机名的位置上填写noprefix ,提交后自然变为空。
问:集群空间是否能防CC攻击?
答:集群空间系统本身没防CC攻击的功能。可我们也有自主开发的防CC攻击防火墙可以屏蔽掉95%的攻击IP。
问:正被攻击的空间转到集群空间是否马上有效。
答:必须在您把站点资料传到服务器上大概三个小时才有效,因为系统把您的站点资料同步到同群内的所有服务器上的过程需要大概三个小时。您站点资料比较少就会更快。追问以上说的不是web集群吗
那数据库mysql集群呢
简述mysql该怎样进行集群部署
mysql集群部署操作如下:
1、在MySQL集群中.当table引擎为NDBCLUSTER时才做集群,其他非NDBCLUSTER表和一般MySQL数据库表一样,不会共享数据。NDBCLUSTER表数据存储在Data node服务器内存中,Data Node可以为1台或多台服务器,它们之间存放共享数据。Data Node服务器可以分组数据copy。
例如:2,3,4,5为四台Data Node服务器ID. 2,3为组0; 4,5为组1; 2,3维持数据相同,4,5维持数据相同。 组0和组1维持数据不同。
2、sql node服务器中,非NDBCLUSTER数据存在本身数据库中,table引擎为NDBCLUSTER时,数据存储在Data Node中。当查询NDBCLUSTER表时,它会从Data node集群中提起数据.
3、Manager server管理SQl node和Data node状态。
简述mysql该怎样进行集群部署
mysql集群部署操作如下:
1、在MySQL集群中.当table引擎为NDBCLUSTER时才做集群,其他非NDBCLUSTER表和一般MySQL数据库表一样,不会共享数据。NDBCLUSTER表数据存储在Data node服务器内存中,Data Node可以为1台或多台服务器,它们之间存放共享数据。Data Node服务器可以分组数据copy。
例如:2,3,4,5为四台Data Node服务器ID. 2,3为组0; 4,5为组1; 2,3维持数据相同,4,5维持数据相同。 组0和组1维持数据不同。
2、sql node服务器中,非NDBCLUSTER数据存在本身数据库中,table引擎为NDBCLUSTER时,数据存储在Data Node中。当查询NDBCLUSTER表时,它会从Data node集群中提起数据.
3、Manager server管理SQl node和Data node状态。
Mysql“集群”和”主从“两者的区别是什么?
mysql的主从服务器是地理上独立,通过网络保持同步拷贝的系统,他们的处理器内存,永久存储介质都是独立于其他站点的。
1、最明显也最本质data-sharing和nothing-sharing的区别,集群是共享存储的复制中没有任何共享,每台机器都是独立且完整的系统,由此,带来的是应用和实现技术上的区别。
2、Master执行提交语句时,事务被发送到slave,slave开始准备事务的提交,每个slave都要准备事务,然后向master发送OK(或ABORT)消息,表明事务已经准备好或者无法准备该事务。
3、Master等待所有Slave发送OK或ABORT消息,如果Master收到所有 Slave的OK消息,它就会向所有Slave发送提交消息,告诉Slave提交该事务,如果 Master收到来自任何一个Slave的ABORT消息,它就向所有 Slave发送ABORT消息,告诉Slave去中止事务。
Mysql“集群”和”主从“两者的区别是什么?
mysql的主从服务器是地理上独立,通过网络保持同步拷贝的系统,他们的处理器内存,永久存储介质都是独立于其他站点的。
1、最明显也最本质data-sharing和nothing-sharing的区别,集群是共享存储的复制中没有任何共享,每台机器都是独立且完整的系统,由此,带来的是应用和实现技术上的区别。
2、Master执行提交语句时,事务被发送到slave,slave开始准备事务的提交,每个slave都要准备事务,然后向master发送OK(或ABORT)消息,表明事务已经准备好或者无法准备该事务。
3、Master等待所有Slave发送OK或ABORT消息,如果Master收到所有 Slave的OK消息,它就会向所有Slave发送提交消息,告诉Slave提交该事务,如果 Master收到来自任何一个Slave的ABORT消息,它就向所有 Slave发送ABORT消息,告诉Slave去中止事务。
mysql集群的几种方案
Asynchronous Replication Automatic failover
其原理是在一条异步复制通道上配置多个可用复制源,当某个复制源不可用时(宕机、复制链路中断),且 slave 的 IO 线程尝试重连无效,自动根据权重选择新的源继续同步。
准备一个 MGR 集群和单实例,模拟复制链路切换,当 primary 故障,slave 自动切换到其他节点。dbdeployer deploy replication --topology=group 8.0.22 --single-primarydbdeployer deploy single 8.0.22
2. 在从机上建立指向 MGR 主节点的复制通道,
change master to master_user='msandbox',master_password='msandbox', master_host='127.0.0.1',master_auto_position=1,source_connection_auto_failover=1,master_port=23223,master_retry_count=6,master_connect_retry=10 for channel 'mgr-single';
在 master_retry_count 和 master_connect_retry 的设置上要考虑尝试重连多久才切换复制源。
3. 在从机上配置 asynchronous connection auto failover
配置 asynchronous connection auto failover 的两个函数:
asynchronous_connection_failover_add_source(channel-name,host,port,network-namespace,weight)
asynchronous_connection_failover_delete_source(channel-name,host,port,network-namespace)
权重值大的被优先级选择,可以配合MGR的选举权重配置 asynchronous_connection_failover 的权重。当 MGR 节点切换,异步复制也能切换到新的主节点。
SELECT asynchronous_connection_failover_add_source('mgr-single','127.0.0.1',23223,null,100); SELECT asynchronous_connection_failover_add_source('mgr-single','127.0.0.1',23224,null,80); SELECT asynchronous_connection_failover_add_source('mgr-single','127.0.0.1',23225,null,50);start slave for channel 'mgr-single';
4. 检查异步复制通道是否启用 failover。
mysql> SELECT CHANNEL_NAME, SOURCE_CONNECTION_AUTO_FAILOVER FROM performance_schema.replication_connection_configuration; +--------------+---------------------------------+| CHANNEL_NAME | SOURCE_CONNECTION_AUTO_FAILOVER |+--------------+---------------------------------+| mgr-single | 1 |+--------------+---------------------------------+1 row in set (0.01 sec
5. 把 MGR 的 primary 节点 kill 掉,这个从节点会在尝试几轮重连失败后自动切换到次权重的复制源,其日志中会输出切换信息。
注意:当主节点故障,一旦复制链路成功 failover 后,在新的复制链路没有故障时,如果原主节点恢复,是不会回切的。如果当前复制链路发生故障,会再次选择权重高的进行切换
mysql集群的几种方案
Asynchronous Replication Automatic failover
其原理是在一条异步复制通道上配置多个可用复制源,当某个复制源不可用时(宕机、复制链路中断),且 slave 的 IO 线程尝试重连无效,自动根据权重选择新的源继续同步。
准备一个 MGR 集群和单实例,模拟复制链路切换,当 primary 故障,slave 自动切换到其他节点。dbdeployer deploy replication --topology=group 8.0.22 --single-primarydbdeployer deploy single 8.0.22
2. 在从机上建立指向 MGR 主节点的复制通道,
change master to master_user='msandbox',master_password='msandbox', master_host='127.0.0.1',master_auto_position=1,source_connection_auto_failover=1,master_port=23223,master_retry_count=6,master_connect_retry=10 for channel 'mgr-single';
在 master_retry_count 和 master_connect_retry 的设置上要考虑尝试重连多久才切换复制源。
3. 在从机上配置 asynchronous connection auto failover
配置 asynchronous connection auto failover 的两个函数:
asynchronous_connection_failover_add_source(channel-name,host,port,network-namespace,weight)
asynchronous_connection_failover_delete_source(channel-name,host,port,network-namespace)
权重值大的被优先级选择,可以配合MGR的选举权重配置 asynchronous_connection_failover 的权重。当 MGR 节点切换,异步复制也能切换到新的主节点。
SELECT asynchronous_connection_failover_add_source('mgr-single','127.0.0.1',23223,null,100); SELECT asynchronous_connection_failover_add_source('mgr-single','127.0.0.1',23224,null,80); SELECT asynchronous_connection_failover_add_source('mgr-single','127.0.0.1',23225,null,50);start slave for channel 'mgr-single';
4. 检查异步复制通道是否启用 failover。
mysql> SELECT CHANNEL_NAME, SOURCE_CONNECTION_AUTO_FAILOVER FROM performance_schema.replication_connection_configuration; +--------------+---------------------------------+| CHANNEL_NAME | SOURCE_CONNECTION_AUTO_FAILOVER |+--------------+---------------------------------+| mgr-single | 1 |+--------------+---------------------------------+1 row in set (0.01 sec
5. 把 MGR 的 primary 节点 kill 掉,这个从节点会在尝试几轮重连失败后自动切换到次权重的复制源,其日志中会输出切换信息。
注意:当主节点故障,一旦复制链路成功 failover 后,在新的复制链路没有故障时,如果原主节点恢复,是不会回切的。如果当前复制链路发生故障,会再次选择权重高的进行切换
MySQL大型分布式集群具体怎么做
1、主要解决针对大型网站架构中持久化部分中,大量数据存储以及高并发访问所带来是数据读写问题。分布式是将一个业务拆分为多个子业务,部署在不同的服务器上。集群是同一个业务,部署在多个服务器上。
2、着重对数据切分做了细致丰富的讲解,从数据切分的原理出发,一步一步深入理解数据的切分,通过深入理解各种切分策略来设计和优化我们的系统。这部分中我们还用到了数据库中间件和客户端组件来进行数据的切分,让广大网友能够对数据的切分从理论到实战都会有一个质的飞跃。
通过分布式+集群的方式来提高io的吞吐量,以及数据库的主从复制,主主复制,负载均衡,高可用,分库分表以及数据库中间件的使用。
MySQL大型分布式集群具体怎么做
1、主要解决针对大型网站架构中持久化部分中,大量数据存储以及高并发访问所带来是数据读写问题。分布式是将一个业务拆分为多个子业务,部署在不同的服务器上。集群是同一个业务,部署在多个服务器上。
2、着重对数据切分做了细致丰富的讲解,从数据切分的原理出发,一步一步深入理解数据的切分,通过深入理解各种切分策略来设计和优化我们的系统。这部分中我们还用到了数据库中间件和客户端组件来进行数据的切分,让广大网友能够对数据的切分从理论到实战都会有一个质的飞跃。
通过分布式+集群的方式来提高io的吞吐量,以及数据库的主从复制,主主复制,负载均衡,高可用,分库分表以及数据库中间件的使用。
怎样解决mysql 集群问题集
误1、[MgmtSrvr] WARNING -- 1011 Unable to connect with connect string: nodeid=0,localhost:1186
处理:一般这个情况是系统ping 127.0.0.1不通,可能是网卡问题,但是ping在eth0和eth1上配置的IP地址却通,所以处理方法是在/etc/hosts文件中添加:
192.168.1.5 localhost
即可。192.168.1.5根据自己配置的IP地址进行修改。
错误2、在修改了数据节点目录后,数据节点遇到如下错误:[ndbd] ERROR -- Couldn't start as daemon, error: 'Failed to lock pidfile '/opt/mysql_cluster/ndb_data/ndb_11.pid', errno: 37'
处理:由于数据节点的目录是挂载在nas存储上面,由于防火墙问题导致nas挂载异常,以致出现以上错误,关闭防火墙,重新挂载nas存储即可。
错误3、在修改了数据节点目录后,mysql节点遇到如下警告:[Warning] NDB : Tables not available after 15 seconds. Consider increasing --ndb-wait-setup value,导致管理节点识别不到mysql节点
处理:经检查,是配置文件my.cnf里ndb-connectstring参数的配置有误,改成正确的管理节点IP地址即可。
Warning: World-writable config file '/etc/my.cnf' is ignored
Unable to connect with connect string: nodeid=0,localhost:1186
Retrying every 5 seconds. Attempts left: 12 11 10 9 8 7 6 5 4 3 2 1, failed.
2011-06-08 23:31:35 [ndbd] ERROR -- Could not connect to management server, error: ''
解决办法 chmod 644 /etc/my.cnf
如何配置MySQL集群在一台服务器
转自:http://www.2cto.com/database/201408/328954.html
加了一些遇到的错误及其解决方法;
------------------------------------------------华丽的分割线--------------------------------------------------------
mysql用来开发中小型项目还是挺好用的,从节约成本的方面来考虑的确是个不错的选择,但是开发并发了比较大的项目显然还是有些吃力的,前几 年解决这种问题通常是通过读写分离来优化数据库,因此出现了amoeba这个东西,现在这个东西已经被弃用了反倒是mysql-cluster-gpl用 的比较多。但是有关mysql集群的配置还是比较繁琐,好多人弄不出来就放弃了,可怕的是网上很多资料都是转载别人的,都没有经过自己实际的验证,简直就 是太坑爹了。这次我打算分享下有关mysql集群的知识。
1 开发准备
下载mysql-cluster-gpl-7.X版本的msi或者exe文件,双击后安装位置随意,安装好之后目录大致如下(ps:可以直接下载免安装版本的)
2 创建于集群相关的文件目录
(1)在磁盘上建一个文件夹名称随意,在这个文件夹下面建mgm_data、ndb_data、mysqld_data,建好之后从mysql-cluster-gpl的安装目录下的bin目录下面复制ndb_mgm.exe和ndb_mgmd.exe到该目录下
(2)接着在ndb_data下面建ndb1和ndb2两个文件夹,并从mysql-cluster安装目录下的bin文件夹复制ndbd.exe到ndb1和ndb2文件夹下面
(3)然后在mysqld_data下面建mysqld1和mysqld2两个文件夹
(4)从mysql-cluster下面复制data、share目录,并从bin目录下复制mysqld.exe、mysqladmin.exe到mysqld1和mysqld2文件夹下面
(5)接下来创建两个my.ini文件内容如下
第一个:
[MYSQLD]ndbclusterdatadir=D:/mydatabase/my_cluster/mysqld_data/mysqld1/databasedir=D:/MySQLClusterport=5000datadir配置的是数据库的数据目录,basedir配置的是mysql-cluster的安装目录
第二个:
[MYSQLD]ndbclusterdatadir=D:/mydatabase/my_cluster/mysqld_data/mysqld2/databasedir=D:/MySQLClusterport=5001
第一个my.ini放在mysqld1文件夹下面,第二个则放在mysqld2文件夹下面
3 在基本目录下面创建一个名为config.ini的文件内容如下
[MYSQLD]Id=21[MYSQLD]Id=22[ndb_mgmd]hostname=localhostdatadir=D:/mydatabase/my_cluster/mgm_dataid=1[NDBD DEFAULT]NoOfReplicas=2 DataMemory=80M IndexMemory=18M [ndbd]hostname=localhostid=11[ndbd]hostname=localhostid=12datadir配置的是管理节点的目录,管理节点对数据节点和数据库服务节点进行统一管理
4 启动管理节点
命令为:ndb_mgmd.exe -f config.ini --initial
第一次启动的时候需要加--initial参数,但是后面启动的时候就不需要了
PS:启动管理节点时可能会报错,不用管它,是因为其他节点还没有启起来;
4 启动数据节点
分别进入每一个数据节点,也就是ndb1和ndb2目录下执行:ndbd -c localhost:1186
以同样的方式启动第二个数据节点
PS:如果提示某文件夹不存在时,在该目录下新建好文件夹即可,然后重新启动;
5 启动mysql服务节点
同样的进入mysql服务节点目录也就是mysqld1和mysqld2目录,执行:mysqld.exe --defaults-file=my.ini
还是以相同的方法启动第二个mysql服务节点
以防万一最好进入管理节点输入:ndb_mgm.exe之后在输入show回车,看看节点的状态是否正常
如图这种情况就说明节点都正常
6 接下来的工作就简单了,只需打开图形界面工具,连接5000和5001的数据库,接在在5000的这个mysql上随便建一个数据库并创建一张表,这里需 要注意的是表的引擎应该使用ndb才可以。之后添加几条数据,我们可以看到在5001的mysql上也可以看到在5000上创建的数据库,且表的信息一致
为了能顺利执行各种命令,建议使用管理员身份执行命令,否则很有可能出现命令执行不成功的情况
? 根据上述方法搭建好了集群,但是没有同步成功,明天看看是什么原因,再做补充!
MySQL集群搭建(所有节点在同一台机子上)
标签:
如何配置MySQL集群在一台服务器
转自:http://www.2cto.com/database/201408/328954.html
加了一些遇到的错误及其解决方法;
------------------------------------------------华丽的分割线--------------------------------------------------------
mysql用来开发中小型项目还是挺好用的,从节约成本的方面来考虑的确是个不错的选择,但是开发并发了比较大的项目显然还是有些吃力的,前几 年解决这种问题通常是通过读写分离来优化数据库,因此出现了amoeba这个东西,现在这个东西已经被弃用了反倒是mysql-cluster-gpl用 的比较多。但是有关mysql集群的配置还是比较繁琐,好多人弄不出来就放弃了,可怕的是网上很多资料都是转载别人的,都没有经过自己实际的验证,简直就 是太坑爹了。这次我打算分享下有关mysql集群的知识。
1 开发准备
下载mysql-cluster-gpl-7.X版本的msi或者exe文件,双击后安装位置随意,安装好之后目录大致如下(ps:可以直接下载免安装版本的)
2 创建于集群相关的文件目录
(1)在磁盘上建一个文件夹名称随意,在这个文件夹下面建mgm_data、ndb_data、mysqld_data,建好之后从mysql-cluster-gpl的安装目录下的bin目录下面复制ndb_mgm.exe和ndb_mgmd.exe到该目录下
(2)接着在ndb_data下面建ndb1和ndb2两个文件夹,并从mysql-cluster安装目录下的bin文件夹复制ndbd.exe到ndb1和ndb2文件夹下面
(3)然后在mysqld_data下面建mysqld1和mysqld2两个文件夹
(4)从mysql-cluster下面复制data、share目录,并从bin目录下复制mysqld.exe、mysqladmin.exe到mysqld1和mysqld2文件夹下面
(5)接下来创建两个my.ini文件内容如下
第一个:
[MYSQLD]ndbclusterdatadir=D:/mydatabase/my_cluster/mysqld_data/mysqld1/databasedir=D:/MySQLClusterport=5000datadir配置的是数据库的数据目录,basedir配置的是mysql-cluster的安装目录
第二个:
[MYSQLD]ndbclusterdatadir=D:/mydatabase/my_cluster/mysqld_data/mysqld2/databasedir=D:/MySQLClusterport=5001
第一个my.ini放在mysqld1文件夹下面,第二个则放在mysqld2文件夹下面
3 在基本目录下面创建一个名为config.ini的文件内容如下
[MYSQLD]Id=21[MYSQLD]Id=22[ndb_mgmd]hostname=localhostdatadir=D:/mydatabase/my_cluster/mgm_dataid=1[NDBD DEFAULT]NoOfReplicas=2 DataMemory=80M IndexMemory=18M [ndbd]hostname=localhostid=11[ndbd]hostname=localhostid=12datadir配置的是管理节点的目录,管理节点对数据节点和数据库服务节点进行统一管理
4 启动管理节点
命令为:ndb_mgmd.exe -f config.ini --initial
第一次启动的时候需要加--initial参数,但是后面启动的时候就不需要了
PS:启动管理节点时可能会报错,不用管它,是因为其他节点还没有启起来;
4 启动数据节点
分别进入每一个数据节点,也就是ndb1和ndb2目录下执行:ndbd -c localhost:1186
以同样的方式启动第二个数据节点
PS:如果提示某文件夹不存在时,在该目录下新建好文件夹即可,然后重新启动;
5 启动mysql服务节点
同样的进入mysql服务节点目录也就是mysqld1和mysqld2目录,执行:mysqld.exe --defaults-file=my.ini
还是以相同的方法启动第二个mysql服务节点
以防万一最好进入管理节点输入:ndb_mgm.exe之后在输入show回车,看看节点的状态是否正常
如图这种情况就说明节点都正常
6 接下来的工作就简单了,只需打开图形界面工具,连接5000和5001的数据库,接在在5000的这个mysql上随便建一个数据库并创建一张表,这里需 要注意的是表的引擎应该使用ndb才可以。之后添加几条数据,我们可以看到在5001的mysql上也可以看到在5000上创建的数据库,且表的信息一致
为了能顺利执行各种命令,建议使用管理员身份执行命令,否则很有可能出现命令执行不成功的情况
? 根据上述方法搭建好了集群,但是没有同步成功,明天看看是什么原因,再做补充!
MySQL集群搭建(所有节点在同一台机子上)
标签:
如何在Windows系统中配置Mysql群集
转自:http://www.2cto.com/database/201408/328954.html
加了一些遇到的错误及其解决方法;
------------------------------------------------华丽的分割线--------------------------------------------------------
mysql用来开发中小型项目还是挺好用的,从节约成本的方面来考虑的确是个不错的选择,但是开发并发了比较大的项目显然还是有些吃力的,前几 年解决这种问题通常是通过读写分离来优化数据库,因此出现了amoeba这个东西,现在这个东西已经被弃用了反倒是mysql-cluster-gpl用 的比较多。但是有关mysql集群的配置还是比较繁琐,好多人弄不出来就放弃了,可怕的是网上很多资料都是转载别人的,都没有经过自己实际的验证,简直就 是太坑爹了。这次我打算分享下有关mysql集群的知识。
1 开发准备
下载mysql-cluster-gpl-7.X版本的msi或者exe文件,双击后安装位置随意,安装好之后目录大致如下(ps:可以直接下载免安装版本的)
2 创建于集群相关的文件目录
(1)在磁盘上建一个文件夹名称随意,在这个文件夹下面建mgm_data、ndb_data、mysqld_data,建好之后从mysql-cluster-gpl的安装目录下的bin目录下面复制ndb_mgm.exe和ndb_mgmd.exe到该目录下
(2)接着在ndb_data下面建ndb1和ndb2两个文件夹,并从mysql-cluster安装目录下的bin文件夹复制ndbd.exe到ndb1和ndb2文件夹下面
(3)然后在mysqld_data下面建mysqld1和mysqld2两个文件夹
(4)从mysql-cluster下面复制data、share目录,并从bin目录下复制mysqld.exe、mysqladmin.exe到mysqld1和mysqld2文件夹下面
(5)接下来创建两个my.ini文件内容如下
第一个:
[MYSQLD]ndbclusterdatadir=D:/mydatabase/my_cluster/mysqld_data/mysqld1/databasedir=D:/MySQLClusterport=5000datadir配置的是数据库的数据目录,basedir配置的是mysql-cluster的安装目录
第二个:
[MYSQLD]ndbclusterdatadir=D:/mydatabase/my_cluster/mysqld_data/mysqld2/databasedir=D:/MySQLClusterport=5001
第一个my.ini放在mysqld1文件夹下面,第二个则放在mysqld2文件夹下面
3 在基本目录下面创建一个名为config.ini的文件内容如下
[MYSQLD]Id=21[MYSQLD]Id=22[ndb_mgmd]hostname=localhostdatadir=D:/mydatabase/my_cluster/mgm_dataid=1[NDBD DEFAULT]NoOfReplicas=2 DataMemory=80M IndexMemory=18M [ndbd]hostname=localhostid=11[ndbd]hostname=localhostid=12datadir配置的是管理节点的目录,管理节点对数据节点和数据库服务节点进行统一管理
4 启动管理节点
命令为:ndb_mgmd.exe -f config.ini --initial
第一次启动的时候需要加--initial参数,但是后面启动的时候就不需要了
PS:启动管理节点时可能会报错,不用管它,是因为其他节点还没有启起来;
4 启动数据节点
分别进入每一个数据节点,也就是ndb1和ndb2目录下执行:ndbd -c localhost:1186
以同样的方式启动第二个数据节点
PS:如果提示某文件夹不存在时,在该目录下新建好文件夹即可,然后重新启动;
5 启动mysql服务节点
同样的进入mysql服务节点目录也就是mysqld1和mysqld2目录,执行:mysqld.exe --defaults-file=my.ini
还是以相同的方法启动第二个mysql服务节点
以防万一最好进入管理节点输入:ndb_mgm.exe之后在输入show回车,看看节点的状态是否正常
如图这种情况就说明节点都正常
6 接下来的工作就简单了,只需打开图形界面工具,连接5000和5001的数据库,接在在5000的这个mysql上随便建一个数据库并创建一张表,这里需 要注意的是表的引擎应该使用ndb才可以。之后添加几条数据,我们可以看到在5001的mysql上也可以看到在5000上创建的数据库,且表的信息一致
为了能顺利执行各种命令,建议使用管理员身份执行命令,否则很有可能出现命令执行不成功的情况
? 根据上述方法搭建好了集群,但是没有同步成功,明天看看是什么原因,再做补充!
MySQL集群搭建(所有节点在同一台机子上)
标签:
如何在Windows系统中配置Mysql群集
转自:http://www.2cto.com/database/201408/328954.html
加了一些遇到的错误及其解决方法;
------------------------------------------------华丽的分割线--------------------------------------------------------
mysql用来开发中小型项目还是挺好用的,从节约成本的方面来考虑的确是个不错的选择,但是开发并发了比较大的项目显然还是有些吃力的,前几 年解决这种问题通常是通过读写分离来优化数据库,因此出现了amoeba这个东西,现在这个东西已经被弃用了反倒是mysql-cluster-gpl用 的比较多。但是有关mysql集群的配置还是比较繁琐,好多人弄不出来就放弃了,可怕的是网上很多资料都是转载别人的,都没有经过自己实际的验证,简直就 是太坑爹了。这次我打算分享下有关mysql集群的知识。
1 开发准备
下载mysql-cluster-gpl-7.X版本的msi或者exe文件,双击后安装位置随意,安装好之后目录大致如下(ps:可以直接下载免安装版本的)
2 创建于集群相关的文件目录
(1)在磁盘上建一个文件夹名称随意,在这个文件夹下面建mgm_data、ndb_data、mysqld_data,建好之后从mysql-cluster-gpl的安装目录下的bin目录下面复制ndb_mgm.exe和ndb_mgmd.exe到该目录下
(2)接着在ndb_data下面建ndb1和ndb2两个文件夹,并从mysql-cluster安装目录下的bin文件夹复制ndbd.exe到ndb1和ndb2文件夹下面
(3)然后在mysqld_data下面建mysqld1和mysqld2两个文件夹
(4)从mysql-cluster下面复制data、share目录,并从bin目录下复制mysqld.exe、mysqladmin.exe到mysqld1和mysqld2文件夹下面
(5)接下来创建两个my.ini文件内容如下
第一个:
[MYSQLD]ndbclusterdatadir=D:/mydatabase/my_cluster/mysqld_data/mysqld1/databasedir=D:/MySQLClusterport=5000datadir配置的是数据库的数据目录,basedir配置的是mysql-cluster的安装目录
第二个:
[MYSQLD]ndbclusterdatadir=D:/mydatabase/my_cluster/mysqld_data/mysqld2/databasedir=D:/MySQLClusterport=5001
第一个my.ini放在mysqld1文件夹下面,第二个则放在mysqld2文件夹下面
3 在基本目录下面创建一个名为config.ini的文件内容如下
[MYSQLD]Id=21[MYSQLD]Id=22[ndb_mgmd]hostname=localhostdatadir=D:/mydatabase/my_cluster/mgm_dataid=1[NDBD DEFAULT]NoOfReplicas=2 DataMemory=80M IndexMemory=18M [ndbd]hostname=localhostid=11[ndbd]hostname=localhostid=12datadir配置的是管理节点的目录,管理节点对数据节点和数据库服务节点进行统一管理
4 启动管理节点
命令为:ndb_mgmd.exe -f config.ini --initial
第一次启动的时候需要加--initial参数,但是后面启动的时候就不需要了
PS:启动管理节点时可能会报错,不用管它,是因为其他节点还没有启起来;
4 启动数据节点
分别进入每一个数据节点,也就是ndb1和ndb2目录下执行:ndbd -c localhost:1186
以同样的方式启动第二个数据节点
PS:如果提示某文件夹不存在时,在该目录下新建好文件夹即可,然后重新启动;
5 启动mysql服务节点
同样的进入mysql服务节点目录也就是mysqld1和mysqld2目录,执行:mysqld.exe --defaults-file=my.ini
还是以相同的方法启动第二个mysql服务节点
以防万一最好进入管理节点输入:ndb_mgm.exe之后在输入show回车,看看节点的状态是否正常
如图这种情况就说明节点都正常
6 接下来的工作就简单了,只需打开图形界面工具,连接5000和5001的数据库,接在在5000的这个mysql上随便建一个数据库并创建一张表,这里需 要注意的是表的引擎应该使用ndb才可以。之后添加几条数据,我们可以看到在5001的mysql上也可以看到在5000上创建的数据库,且表的信息一致
为了能顺利执行各种命令,建议使用管理员身份执行命令,否则很有可能出现命令执行不成功的情况
? 根据上述方法搭建好了集群,但是没有同步成功,明天看看是什么原因,再做补充!
MySQL集群搭建(所有节点在同一台机子上)
标签:
Docker搭建高可用Mysql数据库集群有什么用?
在Docker上搭建高可用MySQL数据库集群有以下几个好处:
高可用性:集群中每个MySQL节点都可以接收读写请求,当一个节点出现故障或宕机时,其他节点可以接替它的工作,确保了数据库的高可用性。
负载均衡:集群中每个MySQL节点可以根据负载情况来分配读写请求,均衡每个节点的负载,提高整个系统的性能和稳定性。
数据备份:集群中的每个节点都可以备份其他节点的数据,确保数据的安全性和完整性,一旦出现数据丢失或者损坏的情况,可以及时进行恢复。
扩展性:集群可以方便地扩展到更多的节点,以适应业务增长和访问量的提高,同时也能够保证系统的性能和可靠性。
总之,使用Docker搭建高可用MySQL数据库集群可以提高系统的可用性、可扩展性和稳定性,同时也能够更好地保护数据安全和完整性。
Docker搭建高可用Mysql数据库集群有什么用?
在Docker上搭建高可用MySQL数据库集群有以下几个好处:
高可用性:集群中每个MySQL节点都可以接收读写请求,当一个节点出现故障或宕机时,其他节点可以接替它的工作,确保了数据库的高可用性。
负载均衡:集群中每个MySQL节点可以根据负载情况来分配读写请求,均衡每个节点的负载,提高整个系统的性能和稳定性。
数据备份:集群中的每个节点都可以备份其他节点的数据,确保数据的安全性和完整性,一旦出现数据丢失或者损坏的情况,可以及时进行恢复。
扩展性:集群可以方便地扩展到更多的节点,以适应业务增长和访问量的提高,同时也能够保证系统的性能和可靠性。
总之,使用Docker搭建高可用MySQL数据库集群可以提高系统的可用性、可扩展性和稳定性,同时也能够更好地保护数据安全和完整性。