MySQL Fabric HA

mysql 安装(Windows)

1. 准备

分别在4台服务器上进行MySQL的安装,服务器应用场景如下

IPPORT场景
192.168.1.13306Fabric
192.168.1.23306APP
192.168.1.33306APP
192.168.1.43306APP

2. 安装和初始化

mysql官网下载所使用的mysql版本,本文以绿色版安装方式进行讲解,下载文件为.zip压缩包,解压zip包,进入到bin目录下执行以下命令安装

mysqld --install <服务名>   // 安装服务

安装完成后服务是启动不成功的,需在mysql根目录新增my.ini文件,文件中内容为

[mysqld]
port=3306   // mysql服务的端口
datadir= 当前目录/Data    // 数据库存放地址

在mysql的bin目录下执行下面命令来初始化数据

mysqld --initialize --console    //--console在当前控制台打印初始化日志

从打印的日志中找到下面一行信息,此信息为初始化完成首次登录信息, root@localhost:后面内容为root账号的密码(密码为随机生成,以本机生成为准)。

[Note] A temporary password is generated for root@localhost:hiyk+om5Vmpq

进入系统的服务管理列表,找到安装时使用的服务名,启用mysql服务;或使用如下命令启动

net start|stop 服务名    // start:开启服务;stop: 关闭服务。

服务开启成功后,在mysql的bin目录下执行以下命令登录mysql

mysql -uroot -p
Enter password: ************   //密码就是初始化时打印的密码

首次登录成功,需要修改密码

mysql> set password=password('123456');     //修改密码
Query OK, 0 rows affected, 1 warning (0.00 sec)

目前为止mysql安装完成

配置支持Fabric

MySQL服务安装完成修改my.ini文件,在文件中[mysqld] 模块中添加以下项,修改完成重启MySQL服务

server_id=1   // 每台机器server_id必须唯一
log-bin
gtid-mode=ON
enforce-gtid-consistency
log_slave_updates

4台MySQL都需增加Fabric使用账号

CREATE USER 'fabric'@'%' IDENTIFIED BY 'fabric';  // 创建fabric使用用户
GRANT ALL ON *.* TO 'fabric'@'%' IDENTIFIED BY'fabric';  // 给fabric赋所有权
flush privileges;  // 刷新权限

Fabric安装

安装

mysql官网下载所使用的Fabric版本(MySQL Utilities1.6.1 及之前版本包含Fabric),本文以绿色版安装方式进行讲解,下载文件为.zip压缩包,Fabric使用python编写,安装前需先安装python环境,将下载的压缩包进行解压,进入根目录执行以下命令进行安装

python setup.py install

配置

修改etc/mysql/fabric.cfg文件

[DEFAULT]
prefix = G:\Program Files (x86)\MySQL\MySQL Utilities   #Fabric的安装目录
sysconfdir = G:\Program Files (x86)\MySQL\MySQL Utilities\etc\mysql   #Fabric的配置文件存放目录
logdir = G:\Program Files (x86)\MySQL\MySQL Utilities/log   #Fabric log文件的存放目录

[storage]   #Fabric应用连接数据库信息
address = localhost:3306   #数据库url
user = fabric   #数据库连接账号
password = fabric   #数据库连接密码
database = fabric   #数据库名
auth_plugin = mysql_native_password   #设置使用的认证插件
connection_timeout = 6   #中断请求之前等待的最大时间,单位秒
connection_attempts = 6   #创建连接的最大尝试次数
connection_delay = 3   #连续尝试创建连接之间的延时时间,默认3s

[servers]
user = fabric
password = root
backup_user = fabric
backup_password = root
restore_user = fabric
restore_password = root
unreachable_timeout = 20

[protocol.xmlrpc]   #该段定义Fabric接收通过XML-RPC协议的请求
address = 0.0.0.0:32274   #标识Fabric使用的主机和端口(0.0.0.0所有ip,可指定ip地址),接收XML-RPC请求
threads = 5   #XML-RPC会话线程的并发创建数,决定多少并发请求Fabric能接受,与数据库连接池数量一致
user = admin   #用户名,认证命令行请求,jdbc连接使用此账号进行登录
password = admin  #用户密码,认证命令行请求,jdbc连接使用此密码进行登录
disable_authentication = no   #是否启用命令行请求需要认证,默认要认证
realm = MySQL Fabric
ssl_ca =     #使用ssl认证方式,指定PEM格式文件,包含信任SSL证书的列表
ssl_cert =     #SSL认证文件,用于创建安全的连接
ssl_key =     #SSL key文件

[executor]   #通过XML-RPC接收到的请求,映射到程序能立即执行或通过队列执行者,保证冲突的请求处理按序执行。通常读操作立即执行通过XML-RPC会话线程,写操作通过执行者
executors = 5   #多少线程用于执行者

[logging]   #设置Fabric日志信息记录到哪里,如果不是开启为后台进程,将打印日志到标准输出
level = INFO   #日志级别,支持DEBUG,INFO,WARNING,ERROR,CRITICAL
url = file:///var/log/fabric.log   #存储日志的文件,能为绝对或相对路径(如是相对路径,将参照default段logdir参数指定的日志目录)

[sharding]   #Fabric使用mysqldump和mysql客户端程序,执行移动和分离shards,指定程序的路径
mysqldump_program = /usr/bin/mysqldump
mysqlclient_program = /usr/bin/mysql

[statistics]
prune_time = 3600   #删除大于1h的条目

[failure_tracking]   #连接器和其他外部实体能报告错误,fabric保持跟踪服务器健康状态和采取相应的行为,如提升一个新的master,如果一个服务器时不稳定的,但不是master,将简单的标记为错误。
notifications = 300   #多少次报告错误后,将标志服务器不可用
notification_clients = 50   #多少不同源报告错误
notification_interval = 60   #评估错误数的统计时间
failover_interval = 0   #为了避免整个系统不可用,自上次提升间隔多少秒后,新master才能选取
detections = 3   #为了缓解fabric,提供内建的错误检查,如果错误检查启动监控一个组,需要连续尝试3(默认)次访问当前master都错误后,才能提升新master,
detection_interval = 6   #连续检查之间的间隔时间
detection_timeout = 1   #错误检查程序尝试连接到一个组中服务器的超时时间
prune_time = 3600   #在错误日志中保留多久的错误信息

[connector]   #Fabric-aware连接器连接到Fabric,获取组、shards、服务器的信息,缓存结果到本地的时长,以提高性能。
ttl = 1   #缓存生存时间,单位s,决定多长时间,连接器考虑一个信息从Fabric获取是有效的

初始化数据

开启Fabric应用使用数据库服务,执行以下命令初始化数据。

mysqlfabric manage setup

开启服务

在根目录下执行以下命令开启Fabric服务

mysqlfabric manage start    #stop为关闭

创建集群组、增加应该服务器信息

mysqlfabric group create my_group   #创建集群组my_group, my_group为自定义名字
mysqlfabric group add my_group 192.168.1.2:3306   #添加组成员,将应用数据库连接地址加入
mysqlfabric group add my_group 192.168.1.3:3306    #remove为移除组
mysqlfabric group add my_group 192.168.1.4:3306

开启选举功能

mysqlfabric group promote my_group

激活故障自动切换

mysqlfabric group activate my_group

查看Fabric状态

mysqlfabric group lookup_servers my_group

完成。

JAVA JDBC连接方式

使用MySQL Fabric后,需修改数据库连接驱动,mysql的驱动包中已包含Fabric连接驱动,只需修改驱动名为以下,不需要新增加jar包

com.mysql.fabric.jdbc.FabricMySQLDriver

数据库连接信息URL地址使用Fabric的地址,Fabric使用XML-RPC协议进行通信,所以端口为fabric中配置的[protocol.xmlrpc]模块中的address信息中的端口(0.0.0.0:32274),URL信息中增加fabricServiceGroup(创建的组)、 fabricUsername([protocol.xmlrpc]中的user)、fabricPassword信息([protocol.xmlrpc]中的password),其它保持不变。格式如下

db.url=jdbc:mysql:fabric://192.168.15.200:32274/shopweb?fabricServerGroup=my_group&fabricUsername=admin&fabricPassword=123456
db.user=数据库应用账号(不变)
db.password=数据库应用密码(不变)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值