首批通过分布式安全可靠测评,为关键业务系统打造
使用 Docker 部署 OceanBase 数据库
更新时间:2023-10-23 15:30:45
部署 OceanBase 数据库的方式有很多,使用 Docker 是其中较方便的一种。本文提供了 OceanBase 数据库的 Docker 镜像 oceanbase-ce。oceanbase-ce 还支持部署 OceanBase 数据库社区版的小规格单机体验模式(mini 模式),仅供研究、学习和评估使用,不适用于生产环境或性能测试场景。
前提条件
在部署 oceanbase-ce 镜像之前,您需要确认以下信息:
确保您机器的资源至少可以运行 2 核 8GB 以上的Docker。
您的机器已安装最新版的 Docker,参考 Docker 文档。
您的机器已经启动 Docker 服务。
启动 OceanBase 数据库实例
运行以下命令,启动 OceanBase 数据库的实例:
# 根据当前容器部署最大规格的实例
docker run -p 2881:2881 --name obstandalone -e MINI_MODE=0 -d oceanbase/oceanbase-ce
## 部署 mini 的独立实例
docker run -p 2881:2881 --name obstandalone -e MINI_MODE=1 -d oceanbase/oceanbase-ce
说明
上述命令默认拉取最新版本,可根据实际需求在 Docker 镜像 中选择版本。
启动预计需要 2-5 分钟。执行以下命令,如果返回 boot success!,则启动成功。
$ docker logs obstandalone | tail -1
boot success!
连接 OceanBase 数据库实例
oceanbase-ce 镜像安装了 OceanBase 数据库客户端 OBClient,并提供了默认连接脚本 ob-mysql。
docker exec -it obstandalone ob-mysql sys # 连接 sys 租户的 root 用户(root@sys)
docker exec -it obstandalone ob-mysql root # 连接 test 租户的 root 用户(root@test)
docker exec -it obstandalone ob-mysql test # 连接 test 租户的 test 用户 (test@test)
您也可以运行以下命令,使用您本机的 OBClient 或者 MySQL 客户端连接实例。
说明
在 Docker 容器中启动 OceanBase 数据库后,您可登录集群执行 ALTER USER 命令修改用户密码,命令详细介绍请参见 ALTER USER。
$ obclient -uroot -h127.1 -P2881
连接成功后,终端将显示如下内容:
$ docker exec -it obstandalone ob-mysql sys
login as root@sys
Command is: obclient -h127.1 -uroot@sys -A -Doceanbase -P2881
Welcome to the OceanBase. Commands end with ; or \g.
Your MySQL connection id is 3221487638
Server version: 5.7.25 OceanBase 3.1.3 (r10100032022041510-a09d3134c10665f03fd56d7f8bdd413b2b771977) (Built Apr 15 2022 02:16:22)
Copyright (c) 2000, 2022, OceanBase and/or its affiliates. All rights reserved.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [oceanbase]>
支持的环境变量
下表列出了当前版本的 oceanbase 镜像支持的环境变量:
| 变量名称 | 默认值 | 描述 |
|---|---|---|
| OB_HOME_PATH | /root/ob | OceanBase 数据库实例的部署路径。 |
| OB_MYSQL_PORT | 2881 | OceanBase 数据库实例的 MySQL 协议端口。 |
| OB_RPC_PORT | 2882 | OceanBase 数据库实例的 RPC 通信端口。 |
| OB_ROOT_PASSWORD | empty | OceanBase 数据库实例 sys 租户的密码。 |
| OB_CLUSTER_NAME | obcluster | OceanBase 数据库实例名称,OBD 将使用这个名称作为集群名。 |
| OB_TENANT_NAME | test | OceanBase 数据库实例默认初始化的用户租户的名称。 |