原创:爱可生开源社区mysql
DBLE是基于开源项目MyCat发展的企业级开源分布式中间件,适用于高并发及TB级海量数据处理场景;江湖人送外号 “MyCat Plus”;其简单稳定,持续维护,良好的社区环境和广大的群众基础使DBLE获得了社区的大力支持。linux
开源分布式中间件DBLE:git
DBLE 最新版本 2.19.01.0 下载地址:github
附件包含中文PDF文档,对应online文档地址:docker
社区技术交流群,迅速获取官方支持:后端
QQ群:669663113bash
3月1日,DBLE 最新版本 2019 农历年首发对新版本的新增特性进行简单说明,本期对新增特性之一的docker镜像如何用于快速开始进行举例说明。并发
1. 关于本节
如何快速使用DBLE的docker-compose文件来启动一个DBLE的quick start
一个按照自定义的配置和SQL脚原本启动DBLE quick start的用例
2. 安装依赖
安装docker
安装docker-compose
安装MySQL链接工具,用于进行链接测试观察结果
3.安装过程
从DBLE项目中下载最新的docker-compose.yml文件:
https://raw.githubusercontent.com/actiontech/dble/master/docker-images/docker-compose.yml
使用docker-compose up命令直接启动dble-server,compose配置文件会从dockerhub拉取镜像并最终启动DBLE。
下载docker-compose.yml,进入对应目录:
docker-compose up -d
注意:一个建立的3个容器:其中两个为MySQL容器,它们将端口3306映射到Docker宿主机的端口33061和33062;dble容器中端口8066和9066映射到Docker主机上的相同端口;
4.链接并使用
使用准备好的MySQL链接工具链接主机的8066或者9066端口,在docker的默认配置中:
8066 端口(服务端口可以执行SQL语句)的用户为 root/123456
9066 端口(管理端口可以执行管理语句)的用户为 man1/654321
#connect dble server port mysql -P8066 -u root -p123456 -h 127.0.0.1 #connect dble manager port mysql -P9066 -u man1 -p123456 -h 127.0.0.1 #connect mysql1 mysql -P33061 -u root -p123456 -h 127.0.0.1 #connect mysql2 mysql -P33062 -u root -p123456 -h 127.0.0.1
请在dble-server容器中查阅/opt/dble/conf/schema.xml文件。
5.环境清理
使用完成或者进行环境重建的时候使用docker-compose stop/down来进行环境的清理:
docker-compose stop
or
docker-compose down
6.使用自定义配置启动DBLE
在这里介绍下如何使用自定义的DBLE本地配置来启动docker-compose中的DBLE。首先,简单描述下默认docker-compose.yml执行的过程,dble-compose挨个启动容器,而且在最终启动dble-server的时候调用。
存在于镜像actiontech/dble:latest目录下的/opt/dble/bin/wait-for-it.sh脚本等待指定的(默认为MySQL1容器的MySQL服务端口)TCP端口启动;
待到指定TCP端口启动以后调用初始化脚本/opt/dble/bin/docker_init_start.sh对于dble-server这个容器进行初始化(替换配置文件,启动DBLE,执行SQL文件)。
下面是默认的docker_init_start.sh脚本:
#!/bin/sh echo "dble init&start in docker" sh /opt/dble/bin/dble start sh /opt/dble/bin/wait-for-it.sh 127.0.0.1:8066 mysql -P9066 -u man1 -h 127.0.0.1 -p654321 -e "create database @@dataNode ='dn1,dn2,dn3,dn4'" mysql -P8066 -u root -h 127.0.0.1 -p123456 -e "source /opt/dble/conf/testdb.sql" testdb echo "dble init finish" /bin/bash
能够轻易的看出脚本的内容很是简单,启动dble->等待DBLE服务启动->执行DBLE管理命令create database在后端MySQL数据库中建立database->执行初始化SQL脚本在DBLE中建立表和插入初始化数据。
因此当须要使用非默认的状况进行启动dble-server容器时须要一如下几个基本步骤:
须要按照以上的模块化步骤编写一个本身的初始化sh文件,而后照着须要的步骤对于DBLE进行启动和初始化
在dble-server的启动配置中添加volumes项,将linux本地的配置文件和初始化文件存放目录挂载至dble-server容器内部(注意DBLE本地放在/opt/dble下)
修改dble-server的启动命令,将初始化脚本修改成自定义的容器内部的初始化脚本
举例
docker-compose.yml修改以下部分:
dble-server: image: actiontech/dble:latest container_name: dble-server hostname: dble-server privileged: true stdin_open: true tty: true volumes: - ./:/opt/init/ command: ["/opt/dble/bin/wait-for-it.sh", "backend-mysql1:3306","--","/opt/init/customized_script.sh"] ports: - "8066:8066" - "9066:9066" depends_on: - "mysql1" - "mysql2" networks: net: ipv4_address: 172.18.0.5
对应本地目录./存在如下文件:
schema.xml rule.xml server.xml init.sql customized_script.sh
脚本customized_script.sh中的内容为:
#!/bin/sh echo "dble init&start in docker" cp /opt/init/server.xml /opt/dble/conf/ cp /opt/init/schema.xml /opt/dble/conf/ cp /opt/init/rule.xml /opt/dble/conf/ sh /opt/dble/bin/dble start sh /opt/dble/bin/wait-for-it.sh 127.0.0.1:8066 mysql -P9066 -u man1 -h 127.0.0.1 -p654321 -e "create database @@dataNode ='dn1,dn2,dn3,dn4'" mysql -P8066 -u root -h 127.0.0.1 -p123456 -e "source /opt/init/init.sql" testdb echo "dble init finish" /bin/bash
以上是对如何快速使用DBLE的docker-compose文件来启动一个DBLE的quick start的描述说明及具体举例,