sequoiaDB连接mysql_SequoiaDB 巨杉数据库Docker镜像使用教程

原标题:SequoiaDB 巨杉数据库Docker镜像使用教程

为方便用户快速体验,SequoiaDB 巨杉数据库提供基于 Docker 的镜像。本文介绍如何在 Docker 环境下部署 SequoiaDB 分布式集群环境。

集群规划

我们准备在五个容器中部署一个多节点高可用 SequoiaDB 集群。

集群包含一个协调节点与编目节点,三个三副本数据节点,与一个 MySQL 实例节点。

样例环境

Docker 环境Mac Docker 2.0.0.3容器操作系统版本Ubuntu 18数据库版本SequoiaDB 3.2.1集群部署一个运行协调和编目节点,三个运行数据节点,一个运行 MySQL 实例

Docker 在 Linux/Windows/MacOS 平台安装方法可参考官方文档。

对于 Linux 环境可参考本样例安装 Docker 环境。

$ apt-get install -y docker.io

拉取镜像

$ docker pull sequoiadb/sequoiadb

$ docker pull sequoiadb/sequoiasql-mysql

启动四个 SequoiaDB 容器

$ docker run -it -d --name coord_catalog sequoiadb/sequoiadb:latest

$ docker run -it -d --name sdb_data1 sequoiadb/sequoiadb:latest

$ docker run -it -d --name sdb_data2 sequoiadb/sequoiadb:latest

$ docker run -it -d --name sdb_data3 sequoiadb/sequoiadb:latest

查看四个容器的容器 ID

$ docker ps -a | awk '{print $NF}';

运行结果:

NAMES

sdb_data3

sdb_data2

sdb_data1

coord_catalog

查看四个容器的容器对应的 IP 地址

$ docker inspect coord_catalog | grep IPAddress |awk 'NR==2 {print $0}'

$ docker inspect sdb_data1 | grep IPAddress |awk 'NR==2 {print $0}'

$ docker inspect sdb_data2 | grep IPAddress |awk 'NR==2 {print $0}'

$ docker inspect sdb_data3 | grep IPAddress |awk 'NR==2 {print $0}'

四条命令的输出结果分别为各个容器自身的 IP 地址:

"IPAddress": "172.17.0.2",

"IPAddress": "172.17.0.3",

"IPAddress": "172.17.0.4",

"IPAddress": "172.17.0.5",

部署 SequoiaDB 集群

根据集群规划以及各个容器的 IP 地址,在对应参数填入各自的地址与端口号。

$ docker exec coord_catalog "/init.sh" \

--coord='172.17.0.2:11810' \

--catalog='172.17.0.2:11800' \

--data='group1=172.17.0.3:11820,172.17.0.4:11820,172.17.0.5:11820;group2=172.17.0.4:11830,172.17.0.5:11830,172.17.0.3:11830;group3=172.17.0.5:11840,172.17.0.3:11840,172.17.0.4:11840'

Copy

该命令输出结果为:

Begin generating SequoiaDB conf file

Finish generating SequoiaDB conf file

Restarting sdbcm process, it will take 10 seconds

Deploy...

Execute command: /opt/sequoiadb/tools/deploy/../../bin/sdb -f /opt/sequoiadb/tools/deploy/quickDeploy.js -e ''

************ Deploy SequoiaDB ************************

Create catalog: 172.17.0.2:11800

Create coord: 172.17.0.2:11810

Create data: 172.17.0.3:11820

Create data: 172.17.0.4:11820

Create data: 172.17.0.5:11820

Create data: 172.17.0.4:11830

Create data: 172.17.0.5:11830

Create data: 172.17.0.3:11830

Create data: 172.17.0.5:11840

Create data: 172.17.0.3:11840

Create data: 172.17.0.4:11840

启动一个 MySQL 实例容器

$ docker run -it -d -p 3306:3306 --name mysql sequoiadb/sequoiasql-mysql:latest

查看启动容器的 ID

$ docker ps -a | awk '{print $NF}';

输出结果为包括 MySQL 实例在内的所有容器名:

NAMES

mysql

sdb_data3

sdb_data2

sdb_data1

coord_catalog

查看容器 IP 地址

$ docker inspect mysql | grep IPAddress | awk 'NR==2 {print $0}'

输出结果为 MySQL 实例的 IP 地址:

"IPAddress": "172.17.0.6",

将 MySQL 实例注册入协调节点

$ docker exec mysql "/init.sh" --port=3306 --coord='172.17.0.2:11810'

输出结果为:

Creating SequoiaSQL instance: MySQLInstance

Modify configuration file and restart the instance: MySQLInstance

Restarting instance: MySQLInstance

Opening remote access to user root

Restarting instance: MySQLInstance

Instance MySQLInstance is created on port 3306, default user is root

本地登陆 MySQL 测试

$ mysql -h 127.0.0.1 -P 3306 -u root

可以得到 MySQL 连接成功的输出:

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 2

Server version: 5.7.25 Source distribution

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

用户可以使用 MySQL 命令创建数据库与表:

mysql> create database sample;

Query OK, 1 row affected (0.00 sec)

mysql> use sample;

Database changed

mysql> create table t1 (c1 int);

Query OK, 0 rows affected (0.59 sec)

mysql> show table status;

+------+-----------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+-------------+-------------+------------+-------------+----------+----------------+---------+

| Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment |

+------+-----------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+-------------+-------------+------------+-------------+----------+----------------+---------+

| t1 | SequoiaDB | 10 | Fixed | 0 | 0 | 0 | 8796093022208 | 131072 | 0 | NULL | NULL | NULL | NULL | utf8mb4_bin | NULL | | |

+------+-----------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+-------------+-------------+------------+-------------+----------+----------------+---------+

1 row in set (0.16 sec)

重置镜像

为方便用户重置已经创建了数据库节点的容器,用户可以使用 cleanup.sh 脚本进行本地容器的重置。

$ docker exec mysql /cleanup.sh

$ docker exec coord_catalog /cleanup.sh

$ docker exec sdb_data1 /cleanup.sh

$ docker exec sdb_data2 /cleanup.sh

$ docker exec sdb_data3 /cleanup.sh

结论

为方便用户快速试用 SequoiaDB 分布式数据库,用户可直接拉取 SequoiaDB 的 Docker 镜像创建一个分布式集群。

该集群仅为测试使用,不可直接应用于生产环境。返回搜狐,查看更多

责任编辑:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值