ARM系统下的postgis12 和postgis13安装

目录

一、环境

二、安装

1、安装docker

2、安装postgis(里面包含postgres)

三、测试

四、使用

五、问题


一、环境

linux的系统在终端输入: uname -a 

Linux host-10-208-254-221 4.19.90-2112.8.0.0131.oe1.aarch64 #1 SMP Fri Dec 31 19:53:20 UTC 2021 aarch64 aarch64 aarch64 GNU/Linux
搞不懂是什么系统???

在网上搜索arm下安装postgres12 。流程贼长安装各种问题,白瞎两天postgres安装好了,postgis插件死活安装不了,废了,果断放弃

参考文档:Postgresql 12.2 + PostGIS 3.0.1 安装部署手册_postgis安装教程_运维&晓柏的博客-CSDN博客

以上文档安装postgres还行,不建议安装postgis, 问题太多

果断放弃使用docker安装!

二、安装

1、安装docker

参考文档: ARM架构服务器安装docker_arm安装docker_相约黄昏后007的博客-CSDN博客

参考文档里面的离线安装过程

1)下载安装包:wget https://download.docker.com/linux/static/stable/aarch64/docker-19.03.9.tgz

2)解压安装包:tar -zxvf docker-19.03.9.tgz

3)移动解压文件: sudo cp -p docker/* /usr/bin/

4)将docker注册为系统服务在/usr/lib/systemd/system/目录下,创建docker.service文件:
        sudo touch /usr/lib/systemd/system/docker.service
5)编辑docker.service文件:sudo vim /usr/lib/systemd/system/docker.service

 [Unit] 

    Description=Docker Application Container Engine 

    Documentation=http://docs.docker.com 

    After=network.target docker.socket 

    [Service] 

    Type=notify 

    EnvironmentFile=-/run/flannel/docker 
    
    WorkingDirectory=/usr/local/bin 

    ExecStart=/usr/bin/dockerd  -H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock --selinux-enabled=false --log-opt max-size=1g 

    ExecReload=/bin/kill -s HUP $MAINPID 

    # Having non-zero Limit*s causes performance problems due to accounting overhead 

    # in the kernel. We recommend using cgroups to do container-local accounting. 

    LimitNOFILE=infinity 

    LimitNPROC=infinity 

    LimitCORE=infinity 

    # Uncomment TasksMax if your systemd version supports it. 

    # Only systemd 226 and above support this version. 

    #TasksMax=infinity 

    TimeoutStartSec=0 

    # set delegate yes so that systemd does not reset the cgroups of docker containers 
    
    Delegate=yes 
    
    # kill only the docker process, not all processes in the cgroup 

    KillMode=process 
    
    Restart=on-failure 
    
    [Install] 

    WantedBy=multi-user.target

6)重载unit配置文件:sudo systemctl daemon-reload

7)启动docker:sudo systemctl start docker

8)设置开机自启动:sudo systemctl enable docker

9)查看状态:

        查看docker状态:sudo systemctl status docker
        查看docker系统信息:docker info
        查看docker版本:docker -v

------------------------------------------------------------------------------------------------------------------------------

2、安装postgis(里面包含postgres)

如果想使用12的版本使用镜像 : nickblah/postgis:12-bullseye-postgis-3 

如果想使用13的版本使用镜像:  gangstead/postgis:13-arm

1) 拉取镜像: docker  pull  gangstead/postgis:13-arm

2) 启动镜像: 

docker run -it \
--name postgres \
--restart always \
-e POSTGRES_USER=postgres \
-e POSTGRES_PASSWORD=123456 \
-e POSTGRES_DBNAME=postgres \
-e ALLOW_IP_RANGE=0.0.0.0/0 \
-p 5432:5432 \
-v /home/postgres/data:/var/lib/postgresql \
-d gangstead/postgis:13-arm

3) 查看启动: docker ps  # 查看容器 是否启动

4)本地链接 : psql -h localhost -U postgres -d postgres   密码:123456
        jdbc链接:

jdbc.url=jdbc:postgresql://localhost:5432/postgres
jdbc.username=postgres
jdbc.password=123456

5) 导入备份的数据

/home/postgres/pg/bin/pg_restore \
--host localhost \
--port 5432 \
--username "postgres" \
--password  \
--role "postgres" \
--dbname "postgres" \
--verbose /root/data/file.backup"

三、测试

四、使用

1、创建extension

create extension postgis;
create extension plpgsql;e
create extension fuzzystrmatch;
create extension tablefunc;
create extension "uuid-ossp" schema "my";
CREATE EXTENSION pgcrypto schema "aa";
CREATE EXTENSION pg_stat_statements;
CREATE EXTENSION  postgres_fdw;

2、在终端使用pg数据库命令

# 数据库
create database aa;
drop database aa;

# 用户
create user "user_aa" with password "123456";
GRANT ALL ON database aa TO "user_aa";

# 模式 (schema)
create schema "user_aa";
ALTER SCHEMA "user_aa" OWNER TO "user_aa";

# 扩展(extension)
create extension  postgis;
ALTER extension  "uuid-ossp" OWNER TO "user_aa";

# 查看扩展
select * from pg_extension;
select * from pg_available_extensions;

 
# 设置用户为超级用户
alter role "user_aa" superuser;
alter database aa owner to "user_aa";
 
# 查看链接数
show max_connections;
select count(*) from pg_stat_activity;
 

# -----------------------------------------------------
\l          # 查看数据库
\c          # 查看用户
\c db       # 切换数据库
\c - user   # 切换用户
\dt         # 查看表
\dh         # 查看方法

五、问题

1、其他模式不能使用扩展方法

例如: select gen_random_uuid()  可以执行。
但是有一个模式aa,我执行select aa.gen_random_uuid() 不能执行。

解决: 创建扩展的时候指定模式:CREATE EXTENSION pgcrypto schema "aa";

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值