网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
安装Postgres10.5
1.首先安装PostgreSQL的rpm
yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86\_64/pgdg-centos10-10-2.noarch.rpm -y
查看postgresql源
yum list | grep postgresql
安装postgresql10-contrib和postgresql10-server。
yum install postgresql10-contrib postgresql10-server -y
这样会给我们的系统增加一个postgres用户
2.修改默认数据目录
Postgresql默认的数据目录是/var/lib/pgsql/版本号/data目录,这要求你在/var下有足够的存储空间,我们这里将其换掉,假设/home的空间很大。
首先在/home下创建一个Postgresql的数据目录,指定所有者postgres同时分配权限
mkdir /home/postgresql_data
chown postgres:postgres /home/postgresql_data
chmod 750 /home/postgresql_data
设置环境变量
export PATH=/usr/pgsql-10/bin:$PATH
export LD_LIBRARY_PATH=/usr/pgsql-10/lib
export PGDATA=/home/postgresql_data
切换到postgres用户,使用initdb初始化数据库,这样在/home/postgresql_data下会增加很多东西,
修改/usr/lib/systemd/system/postgresql-10.service文件的内容,在#Location of database direcotry里面指定正确的PGDATA:
#Location of database directory
Environment=PGDATA=/home/postgresql_data
3.配置数据库服务开机启动并立即启动数据库服务
systemctl enable postgresql-10.service
service postgresql-10 start
service postgresql-10 status
检查数据库状态,有绿色,没红色说明启动完成
这个过程中出现过一个错误,启动失败:
我这边将/home/postgresql_data下的postmaster.pid删除再重启服务就好了
4.修改密码
分为postgres用户密码和数据库密码,保持一致吧
passwd postgres
设置数据库密码:
su postgres
psql
ALTER USER postgres WITH PASSWORD '密码';
\l 列出当前库:
安装PostGIS
1.先安装几个工具包
yum install wget net-tools epel-release -y
然后安装postgis
yum install postgis24_10 postgis24_10-client -y
安装拓展工具
yum install ogr_fdw10 -y
yum install pgrouting_10 -y
2.创建数据库spatial_testdb
CREATE DATABASE spatial\_testdb OWNER postgres;
进入
\c spatial_testdb
安装PostGis扩展
spatial_testdb=# CREATE EXTENSION postgis;
spatial_testdb=# CREATE EXTENSION postgis\_topology;
spatial_testdb=# CREATE EXTENSION ogr\_fdw;
然后可以验证是否安装成功
SELECT postgis\_full\_version();
3.创建空间数据表
存储城市信息(cities),并添加一个存储空间位置的列
spatial_testdb=# CREATE TABLE cities(id varchar(20),name varchar(50));
spatial_testdb=# SELECT AddGeometryColumn ('cities', 'the\_geom', 4326, 'POINT', 2);
之后插入数据
spatial_testdb=# INSERT INTO cities(id, the\_geom, name) VALUES (1,ST\_GeomFromText('POINT(-0.1257 51.508)',4326),'London, England');
spatial_testdb=# INSERT INTO cities (id, the\_geom, name) VALUES (2,ST\_GeomFromText('POINT(-81.233 42.983)',4326),'London, Ontario');
spatial_testdb=# INSERT INTO cities (id, the\_geom, name) VALUES (3,ST\_GeomFromText('POINT(27.91162491 -33.01529)',4326),'East London,SA');
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!