zoukankan      html  css  js  c++  java
  • MySQL集群配

    一.下面假设这3台服务的情况: 
    Server1: 172.18.3.205 
    Server2: 172.18.3.207 
    Server3: 172.18.3.208 
    Servers1和Server2作为实际配置MySQL集群的服务器。对于作为管理节点的Server3则要求较低,只需对Server3的系统进行很小的调整并且无需安装MySQL,Server3可以使用一台配置较低的计算机并且可以在Server3同时运行其他服务。
    ====================================



    二、在Server1和Server2上安装MySQL 

    http://www.mysql.com
    上下载mysql-max-4.1.22-pc-linux-gnu-i686.tar.gz
    注意:必须是max版本的MySQL,Standard版本不支持集群部署! 

    以下步骤需要在Server1和Server2上各做一次 
    # cd /usr/local/ 
    # groupadd mysql 
    # useradd -g mysql mysql 
    # tar -zxvf mysql-max-4.1.22-pc-linux-gnu-i686.tar.gz 
    # mv mysql-max-4.1.22-pc-linux-gnu-i686
    # cd mysql 
    # scripts/mysql_install_db --user=mysql 
    # chown -R root . 
    # chown -R mysql data 
    # chgrp -R mysql . 

    此时不要启动MySQL!
    ========================================================


    三、安装并配置管理节点服务器(Server3) 
    # tar -zxvf mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz 
    # rm mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz 
    # cd mysql-max-4.1.9-pc-linux-gnu-i686 
    # mv bin/ndb_mgm /usr/bin/  
    # mv bin/ndb_mgmd /usr/bin/ 
    #cd /usr/bin
    # chmod +x ndb_mg* 


    现在开始为这台管理节点服务器建立配置文件: 
    # mkdir /var/lib/mysql-cluster 
    # cd /var/lib/mysql-cluster 
    # vi config.ini 
    [NDBD DEFAULT]
    NoOfReplicas=2
    [MYSQLD DEFAULT]
    [NDB_MGMD DEFAULT]
    [TCP DEFAULT]
    # Managment Server
    [NDB_MGMD]
    HostName=172.18.3.208
    # Storage Engines 
    [NDBD]
    HostName=172.18.3.205
    DataDir=/var/lib/mysql-cluster
    [NDBD]
    HostName=172.18.3.207
    DataDir=/var/lib/mysql-cluster
    [MYSQLD] 
    [MYSQLD]
    保存退出后,启动管理节点服务器Server3: 
    /usr/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini

    注释: Cluster管理节点的默认端口是1186,数据节点的默认端口2202。从MySQL 5.0.3开始,该限制已被放宽, Cluster能够根据空闲的端口自动地为数据节点分配端口。如果你的版本低于5.0.22,请注意这个细节。

    启动管理节点后应该注意,这只是管理节点服务,并不是管理终端。因而你看不到任何关于启动后的输出信息。 
    =============================================================

    四、配置集群服务器并启动MySQL 
    在Server1和Server2中都需要进行如下改动:

    [root@localhost local]# cat /etc/my.cnf 
    [mysqld] 
    ndbcluster 
    ndb-connectstring=172.18.3.208  
    [mysql_cluster] 
    ndb-connectstring=172.18.3.208 

    保存退出后,建立数据目录并启动MySQL
    # mkdir /var/lib/mysql-cluster 
    # cd /var/lib/mysql-cluster 
    # /usr/local/mysql/bin/ndbd --initial 


    注意,仅应在首次启动ndbd时,或在备份/恢复数据或配置文件发生变化后重启ndbd时使用“--initial”参数。因为该参数会使节点删除由早期ndbd实例创建的、用于恢复的任何文件,包括用于恢复的日志文件。
    如果不是第一次启动,直接运行如下命令即可


    =============================================

    在 server1 server2 启动mysql
    /usr/local/mysql/bin/mysqld_safe --skip-grant-tables &



    ==================================
    注: /usr/local/mysql/bin/mysqld_safe &  这样起有问题
    [root@localhost ~]# tail -f /usr/local/mysql/data/localhost.localdomain.err
    070723 21:49:58  mysqld started
    070723 21:50:00  InnoDB: Started; log sequence number 0 43634
    070723 21:50:00 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
    070723 21:50:00  mysqld ended
    ============================================

    测试:在server1上执行
    # /usr/local/mysql/bin/mysql -u root -p 
    > use test; 
    > CREATE TABLE ctest (i INT) ENGINE=NDBCLUSTER; 
    > INSERT INTO ctest () VALUES (1); 
    > SELECT * FROM ctest; 
    在server2查询有该记录.证明配置成功




    在管理节点上查看
    [root@localhost bin]# /usr/bin/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    @172.18.3.205  (Version: 4.1.22, Nodegroup: 0, Master)
    id=3    @172.18.3.207  (Version: 4.1.22, Nodegroup: 0)
    [ndb_mgmd(MGM)] 1 node(s)
    id=1    @172.18.3.208  (Version: 4.1.22)
    [mysqld(API)]   2 node(s)
    id=4    @172.18.3.207  (Version: 4.1.22)
    id=5    @172.18.3.205  (Version: 4.1.22)
    ====================================================
    五、启动MySQL Cluster
    较为合理的启动顺序是,首先启动管理节点服务器,然后启动存储节点服务器,最后才启动SQL节点服务器:
    上述配置把存储节点和sql节点放到同台服务器上了。
    ==================================================

    六.

    以下配置把存储节点和sql节点分开来配置
    172.18.3.208 ----->管理节点
    172.18.3.205 ----->存储节点
    172.18.3.207 ----->存储节点
    172.18.3.209 ----->sql节点
    172.18.3.210 ----->sql节点




    管理节点 172.18.3.208 
    [root@localhost mysql-cluster]# cat /var/lib/mysql-cluster/config.ini 
    [NDBD DEFAULT]
    NoOfReplicas=2
    [MYSQLD DEFAULT]
    [NDB_MGMD DEFAULT]
    [TCP DEFAULT]
    # Managment Server
    [NDB_MGMD]
    HostName=172.18.3.208
    # Storage Engines 
    [NDBD]
    HostName=172.18.3.205
    DataDir=/var/lib/mysql-cluster
    [NDBD]
    HostName=172.18.3.207
    DataDir=/var/lib/mysql-cluster
    [MYSQLD] 
    hostname=172.18.3.209
    [MYSQLD] 
    hostname=172.18.3.210

    启动管理节点 /usr/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini

    数据节点 172.18.3.205
    [root@localhost ~]# cat /etc/my.cnf
    [mysqld] 
    ndbcluster 
    ndb-connectstring=172.18.3.208  
    [mysql_cluster] 
    ndb-connectstring=172.18.3.208


    数据节点 172.18.3.208
    [root@localhost test]# cat /etc/my.cnf
    [mysqld]
    ndbcluster
    ndb-connectstring=172.18.3.208
    [mysql_cluster]
    ndb-connectstring=172.18.3.208
    启动数据节点 /usr/local/mysql/bin/ndbd --initial

    sql节点 172.18.3.209
    [root@localhost data]# cat /etc/my.cnf
    [mysqld]
    basedir         = /usr/local/mysql/
    datadir         = /usr/local/mysql/data
    user            = root
    port            = 3306
    socket          = /tmp/mysql.sock
    ndbcluster
    ndb-connectstring=172.18.3.208
    [MYSQL_CLUSTER]
    ndb-connectstring=172.18.3.208

    sql节点 172.18.3.210
    [root@localhost data]# cat /etc/my.cnf
    [mysqld]
    basedir         = /usr/local/mysql/
    datadir         = /usr/local/mysql/data
    user            = root
    port            = 3306
    socket          = /tmp/mysql.sock
    ndbcluster
    ndb-connectstring=172.18.3.208
    [MYSQL_CLUSTER]
    ndb-connectstring=172.18.3.208


    启动sql节点  /usr/local/mysql/bin/mysqld_safe --skip-grant-tables &




    在管理节点 172.18.3.208  查看信息
    [root@localhost mysql-cluster]# /usr/bin/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    @172.18.3.205  (Version: 4.1.22, Nodegroup: 0, Master)
    id=3    @172.18.3.207  (Version: 4.1.22, Nodegroup: 0)
    [ndb_mgmd(MGM)] 1 node(s)
    id=1    @172.18.3.208  (Version: 4.1.22)
    [mysqld(API)]   2 node(s)
    id=4    @172.18.3.209  (Version: 4.1.22)
    id=5    @172.18.3.210  (Version: 4.1.22)


    启动先后顺序:管理节点 数据节点 sql节点


    在sql节点172.18.3.209插入如下的数据

    [root# mysql -uroot test
    mysql> create table city(
    mysql> id mediumint unsigned not null auto_increment primary key,
    mysql> name varchar(20) not null default ''
    mysql> ) engine = ndbcluster default charset utf8;
    mysql> insert into city values(1, 'city1');
    mysql> insert into city values(2, 'city2');
    在172.18.3.210上查询
    root# mysql -uroot test
    mysql> select * from city;
    +-----------+
    |id | name  |
    +-----------+
    |1  | city1 |
    +-----------+
    |2  | city2 |
    +-----------+
    七、安全关闭
    要想关闭 Cluster,可在MGM节点所在的机器上,在Shell中简单地输入下述命令:root# /usr/local/mysql/ndb_mgm -e shutdown
    运行以下命令关闭SQL节点的mysqld服务:
    root# /usr/local/mysql/bin/mysqladmin -uroot shutdown

    详细参照
    http://imysql.cn/?q=node/96
    http://www.yuanma.org/data/2006/0911/article_1501.htm




  • 相关阅读:
    访问控制模型+强制访问控制
    防火墙体系结构
    信息安全工程师手记
    关于PHPSESSIONID的一些发现
    中级测评师10-物联网
    WAPI学习记录
    1. Jenkins 入门使用
    Springboot druid监控配置
    Springboot 添加数据源报错
    mysql function 查询子级机构
  • 原文地址:https://www.cnblogs.com/firmy/p/2304264.html
Copyright © 2011-2022 走看看