一、PolarDB要求
postgres 11.9
postgis 3.0.6
二、docker安装PolarDB
// 1、拉取单节点 PolarDB 镜像
docker pull polardb/polardb_pg_local_instance:single
// 2、创建运行并进入容器
// 创建PolarDB目录,并在目录中创建启动容器脚本start.sh
授予启动权限
chmod +x start.sh
// 启动脚本内容如下
docker run -d -p 5432:5432 \
-it --cap-add=SYS_PTRACE \
--restart=always \
--privileged=true \
--name polardb_pg_single \
polardb/polardb_pg_local_instance:single
// 启动容器
sh start.sh
三、容器内安装PostGresSql
- 1、进入容器
docker exec -it polardb_pg_single bash
- 2、拉取 PolarDB for PostgreSQL 的源代码
git clone -b POLARDB_11_STABLE https://gitee.com/mirrors/PolarDB-for-PostgreSQL
- 3、修改允许外网无法访问pg库配置
vim tmp_master_dir_polardb_pg_1100_bld/pg_hba.conf
增加一行,允许外部网络访问
host all postgres 0.0.0.0/0 trust
- 4、编译部署
// 进入pg源码目录
cd PolarDB-for-PostgreSQL/
// 构建
./polardb_build.sh
- 5、重启postgressql
-
$HOME/tmp_basedir_polardb_pg_1100_bld/bin/pg_ctl restart -D $HOME/tmp_master_dir_polardb_pg_1100_bld
6、校验成功
psql -h 127.0.0.1 -c 'select version();'
或使用navicate直接连接
ip:5432 postgres/postgres
如果成功的话,恭喜pg已安装好!
四、postgis扩展安装
- 1 进入容器内容安装postgis
docker exec -it polardb_pg_single bash
sudo yum -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo yum install postgis30_11 -y
- 2 创建容器内部的postgresql脚本
sudo cp /home/postgres/PolarDB-for-PostgreSQL/contrib/start-scripts/linux /etc/init.d/postgresql
- 3 将postgresql脚本设置可执行
sudo chmod +x /etc/init.d/postgresql
sudo chkconfig --add postgresql
- 4、将postgis扩展脚本链接到polarDb的basedir目录中
sudo ln -s /usr/pgsql-11/share/extension/postgis* /home/postgres/tmp_basedir_polardb_pg_1100_bld/share/extension/
sudo ln -s /usr/pgsql-11/lib/postgis* /home/postgres/tmp_basedir_polardb_pg_1100_bld/lib/
- 5、重启postgressql
$HOME/tmp_basedir_polardb_pg_1100_bld/bin/pg_ctl restart -D $HOME/tmp_master_dir_polardb_pg_1100_bld
此时顺利的话在navicate中可以使用扩展postgis了
如果在postgers输入以下命令,可以在函数中看到看到postgis的空间函数,则安装postgis成功
create extension postgis
五、其他
1、关闭与启动PolarDB
// 关闭pg
$HOME/tmp_basedir_polardb_pg_1100_bld/bin/pg_ctl -D $HOME/tmp_master_dir_polardb_pg_1100_bld/ stop
// 启动pg
$HOME/tmp_basedir_polardb_pg_1100_bld/bin/pg_ctl start -D $HOME/tmp_master_dir_polardb_pg_1100_bld
// 重启pg
$HOME/tmp_basedir_polardb_pg_1100_bld/bin/pg_ctl restart -D $HOME/tmp_master_dir_polardb_pg_1100_bld
2、pg命令
// 查看postgres版本
select version();
// 查看postgis版本
select postgis_full_version();