体验简介
场景将提供一台配置了 CentOS 8.5 操作系统的 ECS 实例(云服务器)。通过本教程的操作,您可以在一台 CentOS 8.5 操作系统的 ECS 实例上通过 Docker 镜像部署 PolarDB-X。立即点击前往
实验准备
- 步骤一:创建实验资源
开始实验之前,您需要先创建 ECS 实例资源。
- 在实验室页面,单击创建资源。
说明:资源创建过程需要 1~3 分钟。
-
(可选)在实验室页面左侧导航栏中,单击云产品资源列表,可查看本次实验资源相关信息(例如 IP 地址、用户信息等)。
-
步骤二:安装依赖
本步骤将指导您如何安装并启动依赖 Docker。
- 执行如下命令,安装 Docker。
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
- 执行如下命令,启动 Docker。
systemctl start docker
- 步骤三:安装 PolarDB-X 数据库
本步骤将指导您如何使用 Docker 镜像安装 PolarDB-X。
- 执行如下命令,拉取 PolarDB-X 容器镜像。
docker pull polardbx/polardb-x
- 执行如下命令,运行 PolarDB-X 容器。
docker run -d --name some-polardb-x -p 8527:8527 polardbx/polardb-x
- 步骤四:体验 PolarDB-X 数据库
本步骤将指导您如何登录 PolarDB-X 并体验 PolarDB-X 的分布式特性。
PolarDB-X 支持通过 MySQL Client 命令行、第三方客户端以及符合 MySQL 交互协议的第三方程序代码进行连接。本实验场景主要介绍如何通过 MySQL Client 命令行连接到 PolarDB-X 数据库。
- 执行如下命令,安装 MySQL。
yum install mysql -y
- 执行如下命令,查看 MySQL 版本号。
mysql -V
返回结果如下,表示您已成功安装 MySQL。
- 执行如下命令,登录 PolarDB-X 数据库。
mysql -h127.0.0.1 -P8527 -upolardbx_root -p123456
说明:
本实验场景中的 PolarDB-X 数据库用户名和密码已预设,请您使用下方命令登录即可。
如遇到 mysql: [Warning] Using a password on the command line interface can be insecure. ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0 报错,重新执行登录命令即可。
- 执行如下 SQL 语句,检查 GMS。
select * from information_schema.schemata;
-
体验 PolarDB-X 数据库的分布式特性。
- 执行如下 SQL 语句,创建数据库。
create database polarx_example mode='auto';
- 执行如下 SQL 语句,使用 polarx_example 数据库。
use polarx_example;
- 执行如下 SQL 语句,创建数据表。
create table example (
`id` bigint(11) auto_increment NOT NULL,
`name` varchar(255) DEFAULT NULL,
`score` bigint(11) DEFAULT NULL,
primary key (`id`)
) engine=InnoDB default charset=utf8
partition by hash(id)
partitions 8;
- 执行如下 SQL 语句,向 example 数据表中插入数据。
insert into example values(null,'lily',375),(null,'lisa',400),(null,'ljh',500);
- 执行如下 SQL 语句,查询 example 表所有数据。
select * from example;
- 执行如下 SQL 语句,查看 example 数据表的分区。
show topology from example;
返回结果如下,您可以看到 example 数据表分布在 8 个分区。
- 执行如下 SQL 语句,检查 CDC。
show master status;
show binlog events in 'binlog.000001' from 4;
- 执行如下 SQL 语句,检查 DN 和 CN。
show storage;
show mpp;
- 输入 exit 退出数据库。
- 执行如下命令,停止 PolarDB-X 容器。
docker stop some-polardb-x
- (选做) 步骤五:使用 PXD 工具一键安装
PolarDB-X
本步骤将指导您如何使用 PXD 工具一键安装 PolarDB-X,详细文档参考使用 PXD 工具一键安装 PolarDB-X。
- 安装 PXD
PXD 是 PolarDB-X 的部署工具,除了支持在本地一键快速拉起测试环境外,也支持在 Linux 集群中通过指定的拓扑的方式部署 PolarDB-X 分布式数据库。
说明:本实验场景使用 virtual environment 安装 PXD 工具。
- 执行如下命令,创建并激活虚拟场景。
python3 -m venv venv
source venv/bin/activate
- 执行如下命令,升级 pip。
pip install --upgrade pip
- 执行如下命令,安装 PXD。
pip install pxd
- 部署 PolarDB-X。
说明:部署 PolarDB-X 有两种方式,请您选择其中一种方式即可。
- 方式一:执行如下命令,创建一个 PolarDB-X 数据库,其中 GMS、CN、DN 和 CDC 节点个数为 1。
pxd tryout
- 方式二:执行如下命令,创建一个 PolarDB-X 数据库,指定 CN、DN 和 CDC 节点个数为 1 以及版本为 latest。
pxd tryout -cn_replica 1 -cn_version latest -dn_replica 1 -dn_version latest -cdc_replica 1 -cdc_version latest
返回结果如下,表示您已成功部署 PolarDB-X 数据库,您可以看到输出的连接信息,通过 MySQL Client 即可连接。
注意:PolarDB-X 管理员账号的密码随机生成,仅出现这一次,请注意保存。
- 执行如下命令,登录 PolarDB-X 数据库。
mysql -h127.0.0.1 -P8527 -upolardbx_root -p123456
-
体验 PolarDB-X。
- 执行如下 SQL 语句,检查 GMS。
select * from information_schema.schemata;
- 执行如下 SQL 语句,创建数据库。
create database polarx_example mode='auto';
- 执行如下 SQL 语句,使用 polarx_example 数据库。sd
use polarx_example;
- 执行如下 SQL 语句,创建数据表。
create table example (
`id` bigint(11) auto_increment NOT NULL,
`name` varchar(255) DEFAULT NULL,
`score` bigint(11) DEFAULT NULL,
primary key (`id`)
) engine=InnoDB default charset=utf8
partition by hash(id)
partitions 8;
- 执行如下 SQL 语句,向 example 数据表中插入数据。
insert into example values(null,'lily',375),(null,'lisa',400),(null,'ljh',500);
- 执行如下 SQL 语句,查询 example 表所有数据。
select * from example;
- 执行如下 SQL 语句,查看 example 数据表的分区。
show topology from example;
返回结果如下,您可以看到 example 数据表分布在 8 个分区。
- 执行如下 SQL 语句,检查 CDC。
show master status;
show binlog events in 'binlog.000001' from 4;
- 执行如下 SQL 语句,检查 DN 和 CN。
show storage;
show mpp;
- 输入 exit 退出数据库。
- 查看 PolarDB-X 状态。
执行如下命令,查看当前环境的 PolarDB-X 状态。
pxd list
返回如下结果,您可查看到 PolarDB-X 状态。
- 清理 PolarDB-X。
执行如下命令,清理本地环境所有的 PolarDB-X
pxd cleanup
- (选做) 步骤六:使用 Kubernetes 安装
本步骤将指导您如何创建一个简单的 Kubernetes 集群并部署 PolarDB-X Operator ,使用 Operator 部署一个完整的 PolarDB-X 集群,详细文档请参考通过。
-
安装 kubectl。
- 执行如下命令,下载 kubectl 文件。
curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
- 执行如下命令,赋予可执行权限。
chmod +x ./kubectl
- 执行如下命令,移动到系统目录。
mv ./kubectl /usr/local/bin/kubectl
- 安装 minikube。
执行如下命令,下载并安装 minikube。
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
-
安装 Helm3。
- 执行如下命令,下载 Helm3。
wget https://labfileapp.oss-cn-hangzhou.aliyuncs.com/helm-v3.9.0-linux-amd64.tar.gz
- 执行如下命令,解压 Helm3。
tar -zxvf helm-v3.9.0-linux-amd64.tar.gz
- 执行如下命令,移动到系统目录。
mv linux-amd64/helm /usr/local/bin/helm
- 使用 minikube 创建 Kubernetes 集群。
minikube 是由社区维护的用于快速创建 Kubernetes 测试集群的工具,适合测试和学习 Kubernetes。使用 minikube 创建的 Kubernetes 集群可以运行在容器或是虚拟机中,本实验场景以 CentOS 8.5 上创建 Kubernetes 为例。
说明:如您使用其他操作系统部署 minikube,例如 macOS 或 Windows,部分步骤可能略有不同。
- 执行如下命令,新建账号 galaxykube,并将 galaxykube 加入 docker 组中。minikube 要求使用非 root 账号进行部署,所有您需要新建一个账号。
useradd -ms /bin/bash galaxykube
usermod -aG docker galaxykube
- 执行如下命令,切换到账号 galaxykube。
su galaxykube
- 执行如下命令,进入到 home/galaxykube 目录。
cd
- 执行如下命令,启动一个 minikube。
说明:这里我们使用了阿里云的 minikube 镜像源以及 USTC 提供的 docker 镜像源来加速镜像的拉取。
minikube start --cpus 4 --memory 7168 --image-mirror-country cn --registry-mirror=https://docker.mirrors.sjtug.sjtu.edu.cn
返回结果如下,表示 minikube 已经正常运行,minikube 将自动设置 kubectl 的配置文件。
- 执行如下命令,使用 kubectl 查看集群信息。
minikube kubectl -- cluster-info
返回如下结果,您可以查看到集群相关信息.
-
部署 PolarDB-X Operator。
- 执行如下命令,创建一个名为 polardbx-operator-system 的命名空间。
kubectl create namespace polardbx-operator-system
- 执行如下命令,安装 PolarDB-X Operator。
helm install --namespace polardbx-operator-system polardbx-operator https://github.com/ApsaraDB/galaxykube/releases/download/v1.2.1/polardbx-operator-1.2.1.tgz
- 执行如下命令,查看 PolarDB-X Operator 组件的运行情况。
kubectl get pods --namespace polardbx-operator-system
返回结果如下,请您耐心等待 2 分钟,等待所有组件都进入 Running 状态,表示 PolarDB-X Operator 已经安装完成。
-
部署 PolarDB-X 集群。
- 执行如下命令,部署一个 PolarDB-X 集群,它包含 1 个 GMS 节点、1 个 CN 节点、1 个 DN 节点和 1 个 CDC 节点。
echo "apiVersion: polardbx.aliyun.com/v1
kind: PolarDBXCluster
metadata:
name: quick-start
annotations:
polardbx/topology-mode-guide: quick-start" | kubectl apply -f -
- 执行如下命令,查看创建状态。
kubectl get polardbxcluster -w
返回结果如下,请您耐心等待大约七分钟,当 PHASE 显示为 Running 时,表示 PolarDB-X 集群已经部署完成。现在您可以开始连接并体验 PolarDB-X 分布式数据库了。
- (选做) 步骤七:源码编译安装 PolarDB-X
本步骤将指导您如何使用源码编译安装 PolarDB-X,详细文档请详见源码编译安装 PolarDB-X。
- 执行如下命令,安装 git。
yum -y install git
- 执行如下命令,下载源码。
git clone https://github.com/ApsaraDB/PolarDB-X.git
- 执行如下命令,进入 PolarDB-X 目录。
cd PolarDB-X
- 执行如下命令,编译。
说明:make 将下载所有源码、工具和库,并构建和安装 PolarDB-X。源码将下载到./build 目录下,编译好的二进制文件将安装到./build/run 目录下。您可以运行 make clean 来移除安装,并尝试再次构建 PolarDB-X。您也可以运行 make cleanAll 来删除./build 下的所有东西。这个过程可能需要半个多小时,取决于您的网络带宽。
make
- 执行如下命令,运行 PolarDB-X。
./build/run/bin/polardb-x.sh start
- 执行如下命令,停止 PolarDB-X。
./build/run/bin/polardb-x.sh stop
- 了解更多
有关 PolarDB-X Github 源码地址请详见 PolarDB-X 源码,说明文档请详见 PolarDB-X 说明文档。若您对 PolarDB-X 内部实现原理感兴趣,可关注我们的知乎官号 PolarDB-X。
下个实验我们将以 Spring 和 WordPress 官方教程为例,带你体验 Spring Boot+PolarDB-X 和 WordPress+PolarDB-X 的应用开发之旅,敬请期待。