zoukankan      html  css  js  c++  java
  • 分布式架构3:MySQL集群(Mysql Cluster7.5.5)

    分布式架构1:Nginx实现负载均衡

    分布式架构2:Nginx下Session存储

    分布式架构3:MySQL集群(Mysql Cluster7.5.5)

    查看mysql版本

    mysqlcluster与mysql 版本对照表

    准备

    硬件:3台服务器

    管理服务器:192.168.1.4

    节点服务器(包括数据节点及SQL节点):A:192.168.1.5;B:192.168.1.6

    下载MySQLCluster: https://downloads.mysql.com/archives/installer/

    配置

    1. 管理服务器

    C盘创建mysql文件夹,mysqlin文件夹,mysqlcluster-logs 空文件夹,mysqlmysql-cluster 空文件夹

    mysqlin下拷贝ndb_mgm.exe、ndb_mgmd.exe(来源:mysql-cluster-gpl-7.5.5-winx64in)

    mysqlin下创建my.ini、config.ini

    my.ini 内容如下

    [mysql_cluster]
    # Options for management node process
    config-file=C:/mysql/bin/config.ini

    config.ini 内容如下

    [NDBD DEFAULT]
    #1: 表示只有一份数据,但是分成n块分别存储在n个数据节点上。2:数据被分成n/2块,每块数据都有2个备份,这样即使有任意一个节点发生故障,只要它的备份节点正常,系统就可以正常运行
    NoOfReplicas=2
    DataDir=D:/mysqlcluster/datanode/mysql/bin/cluster-data
    DataMemory=80M
    IndexMemory=18M
    
    [MYSQLD DEFAULT]
    [NDB_MGMD DEFAULT]
    [TCP DEFAULT]
    
    [NDB_MGMD]
    Nodeid=1
    #管理节点服务器
    HostName=192.168.1.4
    # Storage Engines
    DataDir=C:/mysql/cluster-logs
    
    [NDBD]
    #MySQL集群db1的IP地址
    Nodeid=2
    HostName=192.168.1.5
    
    [NDBD]
    #MySQL集群db1的IP地址
    Nodeid=3
    HostName=192.168.1.6
    
    [MYSQLD]
    #MySQL集群db2的IP地址
    Nodeid=4
    HostName=192.168.1.5
    
    [MYSQLD]
    #MySQL集群db2的IP地址
    Nodeid=5
    HostName=192.168.1.6

      

    2. 节点服务器(A节点配置拷贝至B节点,注意清空数据)

    D盘创建文件夹mysqlcluster,创建子文件夹datanode、sqlnode

     

     my.ini 文件内容

    [mysql_cluster]    
    # Options for data node process:  
    ndb-connectstring=192.168.1.4

    my.ini 文件内容

    [mysqld]
    # Options for mysqld process:
    ndbcluster                      # run NDB storage engine
    ndb-connectstring=192.168.1.4  # location of management server

    注册 mysql 服务 , 注册成功在 windows 的服务里面多了一个 MySQL 的服务 (若服务已存在,请删除 mysqld --remove mysql )

    mysq服务卸载(管理员身份运行cmd)

    d:
    cd D:mysqlclusterdatanodemysqlin

    net stop mysql

    cd D:mysqlclustersqlnodemysqlin

    mysqld --remove mysql

    mysqld --initialize-insecure : 自动生成无密码的root用户;

    mysqld --install

    当出现这样的错误时,清空数据

     

     数据节点B(192.168.1.6) 同上

    启动:必须按顺序,管理节点 --> 数据节点  --> sql 节点


    管理节点 (192.168.1.4)

    cd c:mysqlin
    ndb_mgmd -f c:mysqlinconfig.ini --configdir=c:mysqlmysql-cluster

    (重新加载 config.ini 可加 --reload 参数)

    数据节点A(192.168.1.5)

    d:
    cd D:mysqlclusterdatanodemysqlin

    net start mysql (管理身份启动mysql服务)


    ndbd (普通身份)

    数据节点B(192.168.1.6) 同上

    测试

    连接成功

    管理节点(192.168.1.4)

    子节点测试

    A节点(192.168.1.5)

    d:

    cd D:mysqlclustersqlnodemysqlin

    mysql -u root -p

    create database test_db11;

    use test_db11;

    CREATE TABLE `country` (
    `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '国家id',
    `country_code` varchar(20) NOT NULL COMMENT '国家代码',
    `name` varchar(20) NOT NULL COMMENT '国家名称',
    PRIMARY KEY (`id`),
    UNIQUE KEY `id_UNIQUE` (`id`),
    UNIQUE KEY `country_code_UNIQUE` (`country_code`),
    UNIQUE KEY `name_UNIQUE` (`name`)
    ) ENGINE=ndbcluster DEFAULT CHARSET=utf8 COMMENT='国家';

    insert into country(country_code,name) values("003","EN");

    B节点查询(192.168.1.6)

    use test_db11;

    select * from country;

    参考: https://www.cnblogs.com/leohe/p/6729014.html

    qq:505645074
  • 相关阅读:
    Warning This file includes at least one deprecated or antiquated header
    springdata spring 的nosql的orm框架学习
    C#中this关键字的用法
    java 的svn客户端调用示例
    jsoncpp longlong 类型的扩展
    HTML中的a标签实现点击下载
    android实现自动安装
    键值对 纵一苇之所如
    Js 日期选择,可以的一个页面中重复使用本JS日历,兼容IE及火狐等主流浏览器,而且界面简洁、美观,操作体验也不错。 纵一苇之所如
    C# 判断文件有没占用 纵一苇之所如
  • 原文地址:https://www.cnblogs.com/chen1880/p/15032455.html
Copyright © 2011-2022 走看看