zoukankan      html  css  js  c++  java
  • MySQL:Fabric 安装

    MySQL Fabric安装

    MySQL Fabric是Oracle提供的用于辅助进行hasharding的工具,它的基本架构:

     

    从上面看出,借助于Fabric, 可以搭建 HA 集群、Sharing 、HA+Sharding。

    应用从fabric中得知各个数据库、表、分区等的映射关系,然后访问相应的mysql 实例。

    Fabric由三个组件组成:

    1)fabric 的管理工具(也就是 mysqlfabric)。

    2)fabric nodes,可以启动1到多个node。每个node也是一个进程。用于处理fabric的管理请求、应用的mapping请求。

    3)backstore,它也是一个mysql server,维护了HA Group、Sharding Group。

    下载

    在mysql 5.6之后的版本,可以使用fabric的对应版本是1.5,在mysql官网上可以直接下载。由于fabric是由python语言编写的,并且内部通信用会用到 mysql-connector- python,所以也要下载对应的python驱动。

             我下载的版本是:

    mysql-utiltities-1.5.6-1.el6.noarch.rpm
    mysql-connector-ptyhon-2.0.4-1.el6.noarch.rpm

      

    安装

    1、安装介质

    使用操作系统root用户来安装。

    先安装mysql-connector-ptyhon,再安装mysql-utilities:

    rpm –i mysql-connector-ptyhon-2.0.4-1.el6.noarch.rpm
    rpm –i mysql-utiltities-1.5.6-1.el6.noarch.rpm

     安装完毕后,会有一个mysqlfabric命令可以使用。所以可以通过该命令来判定是否安装成功。

    2、配置文件

    在安装好fabric之后,就会有一个默认的配置文件:fabric.cfg。

    默认的配置文件的位置:

    Platform

    Package

    Location

    Microsoft Windows

    mysql-utilities-1.5.6-win32.msi

    UTILITIES_INSTALLDIR/etc/mysql/fabric.cfg

    Ubuntu Linux 14.04

    mysql-utilities_1.5.6-1ubuntu14.04_all.deb

    /etc/mysql/fabric.cfg

    Debian Linux 6.0

    mysql-utilities_1.5.6-1debian6.0_all.deb

    /etc/mysql/fabric.cfg

    Red Hat Enterprise Linux 6 / Oracle Linux 6

    mysql-utilities-1.5.6-1.el6.noarch.rpm

    /etc/mysql/fabric.cfg

    OS X

    mysql-utilities-1.5.6-osx10.9.dmg

    /etc/mysql/fabric.cfg

    默认的配置文件预览:

    [DEFAULT]
    prefix = /usr/local
    sysconfdir = /usr/local/etc
    logdir = /var/log
    
    [storage]
    address = localhost:3306
    user = fabric_store
    password = secret
    database = mysql_fabric
    auth_plugin = mysql_native_password
    connection_timeout = 6
    connection_attempts = 6
    connection_delay = 1
    
    [servers]
    user = fabric_server
    password = secret
    backup_user = fabric_backup
    backup_password = secret
    restore_user = fabric_restore
    restore_password = secret
    unreachable_timeout = 5
    
    [protocol.xmlrpc]
    address = localhost:32274
    threads = 5
    user = admin
    password = secret
    disable_authentication = no
    realm = MySQL Fabric
    ssl_ca =
    ssl_cert =
    ssl_key =
    
    [protocol.mysql]
    address = localhost:32275
    user = admin
    password = secret
    disable_authentication = no
    ssl_ca =
    ssl_cert =
    ssl_key =
    
    [executor]
    executors = 5
    
    [logging]
    level = INFO
    url = file:///var/log/fabric.log
    
    [sharding]
    mysqldump_program = /usr/bin/mysqldump
    mysqlclient_program = /usr/bin/mysql
    
    [statistics]
    prune_time = 3600
    
    [failure_tracking]
    notifications = 300
    notification_clients = 50
    notification_interval = 60
    failover_interval = 0
    detections = 3
    detection_interval = 6
    detection_timeout = 1
    prune_time = 3600
    
    [connector]
    ttl = 1

     

    在这个配置文件中,会涉及到很多种帐户:
    ·backstore

    在[storage]区域,用来配置backstore mysql server的信息。所以这里配置的就是backstore mysql server的操作帐户。

    该用户必需的权限:

    ALTER              - alter some database objects
    CREATE             - create most database objects
    CREATE VIEW        - create views
    DELETE             - delete rows
    DROP               - drop most database objects
    EVENT              - manage events
    REFERENCES         - foreign keys
    INDEX              - create indexes
    INSERT             - insert rows
    SELECT             - select rows
    UPDATE             - update rows

      

    ·server

    在[servers]区域配置的,是所有的受管mysql server的帐户。

    该用户必需的权限:

    其中全局满围的权限:

    DELETE             - prune_shard
    PROCESS            - list sessions to kill
    RELOAD             - RESET SLAVE
    REPLICATION CLIENT - SHOW SLAVE STATUS
    REPLICATION SLAVE  - SHOW SLAVE HOSTS

     

    其中Fabric 数据库的权限:

    ALTER              - alter some database objects
    CREATE             - create most database objects
    DELETE             - delete rows
    DROP               - drop most database objects
    INSERT             - insert rows
    SELECT             - select rows
    UPDATE             - update rows

     

    ·backup

    在[servers]区域配置的,它是所有的受管mysql server上用于backup的帐户。例如执行mysqldump。

    该用户的权限:

    EVENT              - show event information
    EXECUTE            - show routine information inside views
    REFERENCES         - foreign keys
    SELECT             - read data
    SHOW VIEW          - SHOW CREATE VIEW
    TRIGGER            - show trigger information

     

    ·restore

    在[servers]区域配置的,它是所有的受管mysql server上用于restore的帐户。Restore 用户可以使用mysql client执行restore操作。

    该用户的权限:

    ALTER              - ALTER DATABASE
    ALTER ROUTINE      - ALTER {PROCEDURE|FUNCTION}
    CREATE             - CREATE TABLE
    CREATE ROUTINE     - CREATE {PROCEDURE|FUNCTION}
    CREATE TABLESPACE  - CREATE TABLESPACE
    CREATE VIEW        - CREATE VIEW
    DROP               - DROP TABLE (used before CREATE TABLE)
    EVENT              - DROP/CREATE EVENT
    INSERT             - write data
    LOCK TABLES        - LOCK TABLES (--single-transaction)
    REFERENCES         - Create tables with foreign keys
    SELECT             - LOCK TABLES (--single-transaction)
    SUPER              - SET @@SESSION.SQL_LOG_BIN = 0
    TRIGGER            - CREATE TRIGGER

    ·admin 

    在[protocol.mysql]、[protocol.xmlrpc]中配置的admin用户,是Fabric 的客户端(包括mysqlfabric、使用jdbc驱动的应用等) 与fabric node交互使用的用户、密码。

     在使用mysqlfabric时,可以使用默认的配置文件,也可以使用自定义的配置文件。不管使用哪个配置文件,相关的配置项都是要配的。

    3、创建backstore 帐户

    创建一个mysql 实例作为fabric 的backstore。然后创建一个fabric backstore帐户。

    CREATE USER 'fabric_store'@'localhost'
       IDENTIFIED BY 'secret';
    
    GRANT ALTER, CREATE, CREATE VIEW, DELETE, DROP, EVENT,
       INDEX, INSERT, REFERENCES, SELECT, UPDATE ON mysql_fabric.*
       TO 'fabric_store'@'localhost';

    创建的这个用户名、密码要跟配置文件fabric.cfg中[storeage]区域中的user、password相同。 

    此时fabric数据库还没有创建,但是也不要自己去创建。

    4、初始化fabric数据库、表

    使用mysqlfabric初始化:

    mysqlfabric manage setup

    如果要使用自定义的fabric.cfg配置文件:

    mysqlfabric --config=/your/fabric/cfg/path manage setup

    5、mysqlfabric命令

    1)启动fabric节点

    mysqlfabric --config=/your/fabric/cfg/path manage start

    2)停止fabric节点 

    mysqlfabric --config=/your/fabric/cfg/path manage stop

    至于其它命令,可以参考官方文档。 

  • 相关阅读:
    MySQL DDL 在指定位置新增字段
    .NET平台常见技术框架整理汇总
    使用Linq求和方法Sum计算集合中多个元素和时应该注意的性能问题
    python时间操作
    django 利用原生sql操作数据库
    滑动验证码获取像素偏移量
    python opencv简单使用
    django通过旧数据库库生成models
    pandas 操作csv文件
    简单工厂模式(Simple Factory Pattern)
  • 原文地址:https://www.cnblogs.com/f1194361820/p/6233376.html
Copyright © 2011-2022 走看看