对PolarDB-X数据库早有耳闻,作为阿里出品的分布式数据库系统,在阿里的电商业务场景和云上应用许久,肯定在稳定性和性能上面做了很大的优化。
今天就根据官方文档来初步体验一下PolarDB-X的安装和使用。本体验过程主要参考官网文档,如下:
安装环境是centos7,希望通过PXD部署我们的PolarDB-X。服务器上docker和python都有,只是python的版本是3.11.X,由于python的版本,在安装PXD的时候出现了一下错误:
Using cached https://mirrors.aliyun.com/pypi/packages/a0/a4/d63f2d7597e1a4b55aa3b4d6c5b029991d3b824b5bd331af8d4ab1ed687d/PyYAML-5.4.1.tar.gz (175 kB) Installing build dependencies ... done Getting requirements to build wheel ... error error: subprocess-exited-with-error × Getting requirements to build wheel did not run successfully. │ exit code: 1 ╰─> [54 lines of output] running egg_info
简单的搜索了一下,由于 PyYAML与python版本不一致导致的,参考如下:
通过重新创建基于python3.8版本的虚拟环境就可以解决该错误了。
继续往下走就是通过PXD安装我们的PolarDB-X的环节了,该环节只要执行pxd tryout命令,你可以喝咖啡了。但是咖啡刚喝两口,报错了,这次的错误如下:
docker.errors.APIError: 500 Server Error for http+docker://localhost/v1.44/containers/0272fff8ae39483c6cec786e67cf06aaee9c09e298d2a0fde70bb845d4ba2cdd/start: Internal Server Error ("driver failed programming external connectivity on endpoint pxc-tryout-gms-Cand-15795 (87aeeeb088fe33bdaa4a121e2f9d008f675c35dc2f7d04ed6e046dcc79ffed95): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 15795 -j DNAT --to-destination 172.17.0.2:15795 ! -i docker0: iptables: No chain/target/match by that name. (exit status 1))")
初步判断是docker容器中的iptables的配置问题,莫慌,执行sudo iptables -L -n然后sudo systemctl restart docker重启一下容器,接着pxd delete pxd-tryout,最后在执行pxd tryout,安装过程继续执行,知道出现mysql -hhost.....你就可以放下咖啡,进入polarDB-X的使用阶段了。
安装好mysql client端,你就可以执行polarDB-X安装完以后出现的mysql命令,就可以像使用mysql一样使用我们的polarDB-X分布式数据库了。
对于熟悉mysql的小伙伴来说,不用担心会有sql语法差异了,因为PolarDB-X完全兼容咱们的MySQL,期待项目上把数据库切换到PolarDB-X上。
最后附上咱们的安装过程的history记录,仅供小伙伴参考