MySQL Fabric

是一个用于管理 MySQL 服务器群的可扩展框架。该框架实现了两个特性 — 高可用性 (HA) 以及使用数据分片的横向扩展。这两个特性既可以单独使用,也可以结合使用。

环境:

安装MySQL Fabric

配置MySQL Fabric

MySQL Fabric 安装管理数据库fabric

启动MySQL Fabric

创建Fabric高可用组mysql_ha

添加mysql_ha组添加节点

自动推举一个节点为主库

查看mysql_ha组节点服务器

测试mysql_ha组高可用

恢复192.168.1.101并设置为从库

查看mysql_ha组状态

使用python连接MySQL Fabric

运行python-fabric.py

使用PHP连接MySQL Fabric

MySQL Fabric 常用操作

环境:

名称

IP

端口

软件

备注

MySQL Fabric

192.168.1.100

3306

MySQL5.6.24、mysql-utilities-1.5.4

Fabric管理

MySQL主服务器

192.168.1.101

3306

MySQL5.6.24

节点

MySQL从服务器

192.168.1.102

3306

MySQL5.6.24

节点

注:Fabric基于MySQL GTID主从复制,需要安装MySQL 5.6以上版本。

GTID特点是很方便在1主多从环境下,根据GITD号方便切换主从关系。

详细请参考官方文档

主从复制安装部署忽略

安装MySQL Fabric

#tar zxvf mysql-utilities-1.5.4.tar.gz

#cd mysql-utilities-1.5.4

#python ./setup.py build

#python ./setup.py install

注:Fabric只需安装在192.168.1.100服务器上

配置MySQL Fabric

建立管理账号

#mysql>grant all on *.* to ‘fabric’@’192.168.1.100’identified by ‘pass’;

注:此账号需要在192.168.1.100、192.168.1.101、192.168.1.102服务器创建。

修改MySQL配置文件(my.cnf)

gtid-mode = on

enforce-gtid-consistency = true

log_slave_updates = true

注:需要修改192.168.1.101、192.168.1.102服务器

修改MySQL Fabric 配置文件

#vi /etc/mysql/fabric.cfg

[storage]

address = 192.168.1.100:3306

user = fabric

password = pass

database = fabric

auth_plugin = mysql_native_password

connection_timeout = 6

connection_attempts = 6

connection_delay = 1

[servers]

user = fabric

password = pass

unreachable_timeout = 5

MySQL Fabric 安装管理数据库fabric

#mysqlfabric manage setup

[INFO] 1408115689.486792 – MainThread -Initializing persister: user (fabric), server (192.168.1.100:3306), database(fabric).

Finishing initial setup

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

Password for admin user is not yet set.

Password for admin/xmlrpc:

Repeat Password:

Password set.

安装期间需要设置fabric管理密码。

安装完成后。会生成一个fabric管理数据库

启动MySQL Fabric

#mysqlfabric manage start –daemonize

注:参数—daemonize 为后台启动

创建Fabric高可用组mysql_ha

#mysqlfabric group create mysql_ha

添加mysql_ha组添加节点

#mysqlfabric group add my_group192.168.1.101:3306

#mysqlfabric group add my_group192.168.1.102:3306

自动推举一个节点为主库

#mysqlfabric group promote mysql_ha

查看mysql_ha组节点服务器

#mysqlfabric group lookup_servers mysql_ha

Fabric UUID:  5ca1ab1e-a007-feed-f00d-cab3fe13249e

Time-To-Live: 1

server_uuid              address    status      mode   weight

——————————————————– ——— ———- ——

1135f441-f867-11e4-9bfc-000c296cbb9a192.168.1.101:3306 PRIMARY READ_WRITE S   1.0

13f32739-f867-11e4-9bfc-000c2957c804192.168.1.102:3306 SECONDARY  READ_ONLY    1.0

测试mysql_ha组高可用

将192.168.1.101 主库关闭。在查看mysql_ha组节点服务器状态

#mysqlfabric group lookup_servers mysql_ha

Fabric UUID:  5ca1ab1e-a007-feed-f00d-cab3fe13249e

Time-To-Live: 1

server_uuid              address    status      mode   weight

——————————————————– ——— ———- ——

1135f441-f867-11e4-9bfc-000c296cbb9a192.168.1.101:3306 FAULTY READ_WRITE      1.0

13f32739-f867-11e4-9bfc-000c2957c804192.168.1.102:3306 PRIMARY READ_WRITE S   1.0

注:Fabric自动将从库192.168.1.102设置为主库,主库192.168.1.101状态为FAULTY

恢复192.168.1.101并设置为从库

#mysqlfabric server set_status  1135f441-f867-11e4-9bfc-000c296cbb9a spare

#mysqlfabric server set_status  1135f441-f867-11e4-9bfc-000c296cbb9asecondary

查看mysql_ha组状态

#mysqlfabric group lookup_servers mysql_ha

Fabric UUID:  5ca1ab1e-a007-feed-f00d-cab3fe13249e

Time-To-Live: 1

server_uuid              address    status      mode   weight

——————————————————– ——— ———- ——

1135f441-f867-11e4-9bfc-000c296cbb9a192.168.1.101:3306 SECONDARY  READ_ONLY  1.0

13f32739-f867-11e4-9bfc-000c2957c804192.168.1.102:3306 PRIMARY READ_WRITE S   1.0

注:192.168.1.101状态已从FAULTY变为 SECONDARY

使用python连接MySQL Fabric

#vi python-fabric.py

#!/usr/bin/env python

import sys

import mysql.connector

from mysql.connector import fabric

def main():

try:

conn = mysql.connector.connect(

fabric ={"host":"localhost","port":32274,"username":"admin","password":"pass"},

user = 'fabric',database = 'test',password = 'fabric',autocommit = True

)

exceptException,e:

print e

sys.exit(1)

else:

conn.set_property(mode=fabric.MODE_READWRITE,group="mysql_ha")

cur = conn.cursor()

cur.execute(

"CREATE TABLE IF NOT EXISTS fabrictest ("

" sub_no INT,"

" first_name CHAR(40),"

" last_name CHAR(4)"

")"

)

finally:

conn.close()

if __name__ == '__main__':

main()

注:注意修改脚本里面参数。

运行python-fabric.py

#python python-fabric.py

运行成功会在mysql主服务器(192.168.1.101)test数据库里创建fabrictest表。

mysql> show tables from test;

+——————–+

| Tables_in_test |

+——————–+

| fabrictest    |

+——————–+

使用PHP连接MySQL Fabric

请参考PHP官方说明

注:PHP目前对MySQLFabric 支持不太好。MySQL官方文档也没介绍PHP如何连接MySQL Fabric。

MySQL Fabric 常用操作

创建组

mysqlfabric group create my_group

添加节点

mysqlfabric group add my_group192.168.223.128:3306

mysqlfabric group add my_group192.168.223.135:3306

删除

注:不能删除主数据库节点,要先降级

mysqlfabric group demote my_group

mysqlfabric group remove my_group1135f441-f867-11e4-9bfc-000c296cbb9a

自动推举一个主

mysqlfabric group promote my_group

手动设置一个主

mysqlfabric group promote my_group–slave_id=1135f441-f867-11e4-9bfc-000c296cbb9a –update_only

自动切换主从

mysqlfabric group activate my_group

禁用自动切换主从

mysqlfabric group deactivate my_group

设置节点状态primary,secondary,spare,faulty

mysqlfabric server set_status  13f32739-f867-11e4-9bfc-000c2957c804 spare

MySQL服务器恢复,如果MySQL从服务器处于faulty(故障)状态。需要先设置为spare,在设置为secondary (从)

mysqlfabric group demote my_group #将my_group组降级

mysqlfabric server set_status  1135f441-f867-11e4-9bfc-000c296cbb9a spare

mysqlfabric server set_status  13f32739-f867-11e4-9bfc-000c2957c804secondary

MySQL服务器恢复,如果MySQL主服务器处于faulty(故障)状态。需要先设置为spare,在手动设置主

mysqlfabric group demote my_group #将my_group组降级

mysqlfabric server set_status  1135f441-f867-11e4-9bfc-000c296cbb9a spare,

mysqlfabric group promote my_group–slave_id=1135f441-f867-11e4-9bfc-000c296cbb9a –update_only

查看

mysqlfabric group lookup_servers my_group

mysqlfabric group health my_group

启动mysqlfabric

mysqlfabric manage start

后台启动mysqlfabric

mysqlfabric manage start –daemonize

停止mysqlfabric

mysqlfabric manage stop

查看mysqlfabric 状态

mysqlfabric manage ping

原文:https://www.chinasa.net/archives/155.html

原创文章,作者:wubin,如若转载,请注明出处:http://www.178linux.com/17384

mysql fabric搭建_MySQL Fabric 安装部署相关推荐

  1. Centos6.0 64位MySQL 5.5.20 CMake 安装部署

    Centos6.0 64位下 MySQL 5.5.20 CMake 安装部署 一.下载所需软件 linux用 wget 下载需要的软件,保存到目录 /usr/local/src 下 wget ftp: ...

  2. [MySQL] MySQL的自己主动化安装部署

    有过MySQL运维的人应该都清楚,线上的MySQL一般都採用源代码编译,由于这样才干够依据企业的各自须要选择要编译的功能,尽管MySQL的源代码编译挺简单的,可是试想一下,假设你有几百台server同 ...

  3. mysql的安装版本有无开发版_moodle 2.0.2 安装图文教程 2——PHP Mysql环境搭建和moodle安装 - 乔木的日志 - ICT教育 - 中小学信息技术教育和教育信息化网站...

    moodle 2.0.2 安装图文教程 2--PHP+Mysql环境搭建和moodle安装 热度 6已有 211 次阅读 2011-3-29 16:49 ||关键词:moodle 2 图文安装教程 p ...

  4. mysql二进制升级_MySQL二进制安装,升级,多实例部署

    MySQL二进制安装,升级,多实例部署 目标 理解线上部署考虑的因素 学会编译安装以及二进制安装mysql 学会升级mysql 学会多实例部署mysql数据库 学会合理部署mysql线上库 考虑因素: ...

  5. mysql pxc搭建_MySQL PXC 高可用集群搭建

    一些名词介绍: WS:write set写数据集IST: Incremental State Transfer增量同步SST:State Snapshot Transfer全量同步 pxc环境所涉及的 ...

  6. Storm 04_Storm单机模式搭建完全分布式安装部署集群drpc

    一.环境要求 JDK 1.6+ java -version Python 2.6.6+ python -V ZooKeeper3.4.5+ storm 0.9.4+ ----------------- ...

  7. Fabric 搭建测试网络并部署智能合约

    1.搭建网络: 详见博客 2.对Test Network的创建和关闭 cd ${HOME}/fabric-samples/test-network 创建网络: ./network.sh up关闭网络: ...

  8. mysql基础搭建_MySql基础-构建MySql数据库:安装MySql-server、MySql-client

    1 构建MySQL服务器 1.1 问题 本案例要求熟悉MySQL官方安装包的使用,快速构建一台数据库服务器: 安装MySQL-server.MySQl-client软件包 修改数据库用户root的密码 ...

  9. mysql客户端centos离线安装_mysql离线安装部署centos

    # 1. Mysql单机安装 前提:切换用户命令  su root ## 1.1 卸载系统自带的mysql ### 1.1.1查看已安装的mysql ``` [root@localhost ~]# r ...

最新文章

  1. LR需要理解的一些内容
  2. PHP取得json前面有乱码(去除文件头部BOM)
  3. CUDA系列学习(三)GPU设计与结构QA coding练习
  4. 火狐浏览器mac_Firefox火狐浏览器73.0版本发布,有哪些期待已久的新功能?
  5. 自然语言处理之长短时记忆网络(六)
  6. [css] 说说你对hasLayout的理解,触发hasLayout的方式有哪些?
  7. mysql远程登录备份_mysql实现自动远程备份一办法(转)
  8. 复数基础——复数的绝对值,复数的极坐标形式的直观解释练习_8
  9. 你必须掌握的常用正则表达式大全
  10. 第一模块:开发基础 第1章 练习及作业
  11. 移动机器人路径规划:人工势场法
  12. 机器视觉,运动控制,C#联合雷赛运动控制卡,C#联合凌华控制 卡源码
  13. Redis安装教程(vmware虚拟机上)
  14. 【Android初学者】UI组件 介绍
  15. 欧盟CE公告号-外贸人不得不了解的通关证书
  16. idea 运行项目显示 Command line is too long. Shorten command line for
  17. 腾讯云CVM云服务器1M宽带能干嘛?1M宽带支撑多少人在线?
  18. 基于java的家庭理财系统_基于jsp的家庭理财系统-JavaEE实现家庭理财系统 - java项目源码...
  19. linux debian怎么重启网卡,debian10网卡设置
  20. 如何设计产品的引流诱饵?如何控制引流产品的成本呢?

热门文章

  1. python执行cmd命令,并获得返回值
  2. 达梦数据库配置SSL认证加密
  3. 系统中IDE硬盘与SCSI硬盘的区别
  4. This is My frist Webo Happy!!!
  5. FineBI学习笔记
  6. python开发bi报表_bi报表
  7. 个人信用卡融资你了解过吗?
  8. 微信小程序mpvue项目使用WuxWeapp前端UI组件
  9. 干货丨吉时利源表测试方法详
  10. 什么是MySQL的复制表?