离线用到的包,百度链接: https://pan.baidu.com/s/14baq72bveIWMbN89tvEgXQ 提取码:573f
我是把防火墙关了的,方便连接数据库
关闭防火墙:systemctk stop firewalld
cd /usr/local
tar -zxvf gccpackages.tar.gz -C /opt/
cd /opt/gccpackages
rpm -Uvh *.rpm --nodeps --force
执行命令:rpm -ivh ncurses-devel-5.9-14.20130511.el7_4.x86_64.rpm 执行命令:rpm -ivh readline-6.2-11.el7.x86_64.rpm 执行命令:rpm -ivh readline-devel-6.2-11.el7.x86_64.rpm --force --nodeps 执行命令:rpm -ivh zlib-devel-1.2.7-18.el7.x86_64.rpm 执行命令:rpm -ivh xz-devel-5.2.2-1.el7.x86_64.rpm 执行命令:rpm -ivh libxml2-2.9.1-6.el7.5.x86_64.rpm 执行命令:rpm -ivh libxml2-devel-2.9.1-6.el7.5.x86_64.rpm --nodeps 解压数据库:tar -zxvf postgresql-9.5.7.tar.gz 到解压后文件夹:cd postgresql-9.5.7 执行命令:./configure --prefix=/usr/local/postgresql --with-libxml 编译:gmake 安装:gmake install 创建用户:useradd postgres 进入到postgres目录:cd /usr/local/postgresql 创建data文件夹:mkdir data 赋予权限:chown -R postgres:postgres data 2. 设置环境变量 执行命令:vi /etc/profile 在末尾添加:
rpm -ivh ncurses-devel-5.9-14.20130511.el7_4.x86_64.rpm
rpm -ivh readline-6.2-11.el7.x86_64.rpm
rpm -ivh readline-devel-6.2-11.el7.x86_64.rpm --force --nodeps
rpm -ivh zlib-devel-1.2.7-18.el7.x86_64.rpm
rpm -ivh xz-devel-5.2.2-1.el7.x86_64.rpm
rpm -ivh libxml2-2.9.1-6.el7.5.x86_64.rpm
rpm -ivh libxml2-devel-2.9.1-6.el7.5.x86_64.rpm --nodeps
tar -zxvf postgresql-9.5.7.tar.gz
cd postgresql-9.5.7
./configure --prefix=/usr/local/postgresql --with-libxml
gmake
gmake install
useradd postgres
cd /usr/local/postgresql
mkdir data
chown -R postgres:postgres data
vi /etc/profile
export PGDATA=/usr/local/postgresql/data export PGHOME=/usr/local/postgresql export PATH=$PGHOME/bin:$PATH
刷新配置:source /etc/profile 3. 初始化数据库 切换用户:su postgres 数据库初始化操作:initdb 返回到根目录:cd 启动数据库:pg_ctl -D /usr/local/postgresql/data -l logfile start 执行命令:psql 修改密码:alter user postgres with password '密码'; 执行命令:\q 4. 数据库配置,如果postgres用户修改不了就切换到root用户 进入到data文件夹:cd /usr/local/postgresql/data/ 执行命令:vi postgresql.conf
source /etc/profile
su postgres
initdb
cd
pg_ctl -D /usr/local/postgresql/data -l logfile start
psql
alter user postgres with password '密码';
\q
cd /usr/local/postgresql/data/
vi postgresql.conf
修改listen_addresses="*"
执行命令:vi pg_hba.conf
vi pg_hba.conf
# IPv4 local connections: 每个机器都能远程连接 host all all 0.0.0.0/0 md5
重启数据库:pg_ctl -D /usr/local/postgresql/data -l logfile restart 测试连接: 测试:
pg_ctl -D /usr/local/postgresql/data -l logfile restart
CREATE TABLE xmltab01(books xml); INSERT INTO xmltab01(books) VALUES ('<title>Book0001</title>');
参考链接 我是参考上面的链接安装,并自己做了调整 5. 进入到gisfile文件夹:cd /var/gisfile 里面是安装postgresl时候上传进来的文件 2. 先安装bzip,不然会报以下错误 进入/var/gisfile文件夹:cd /var/gisfile 安装命令:rpm -ivh bzip2-1.0.6-13.el7.x86_64.rpm
cd /var/gisfile
rpm -ivh bzip2-1.0.6-13.el7.x86_64.rpm
3.(上面已经装过可以省略)安装gcc,g++编译工具,不然安装报以下错误 configure: error: no acceptable C compiler found in $PATH 进入/var/gisfile文件夹:cd /var/gisfile 解压gccpackages.tar.gz到opt文件夹:tar -zxvf gccpackages.tar.gz -C /opt/ 进入opt文件夹:cd /opt/gccpackages 执行安装命令:rpm -Uvh *.rpm --nodeps --force 4. 安装gdal拓展 进入/var/gisfile文件夹:cd /var/gisfile 解压文件:tar -zxvf gdal-2.0.0.tar.gz -C /opt 进入到解压后目录:cd /opt/gdal-2.0.0 将gdal安装到/usr/local/gdal-2.0.0目录下 注: (这个目录不要和上传目录一样,否则会报错):./configure --prefix=/usr/local/gdal-2.0.0 编译:make 安装:make install 5. 安装geos扩展 进入/var/gisfile文件夹:cd /var/gisfile 解压文件:tar -jxf geos-3.6.3.tar.bz2 -C /opt 进入到解压后目录:cd /opt/geos-3.6.3/ 将geos安装到/usr/local/geos-3.6.3目录下 注: (这个目录不要和上传目录一样,否则会报错):./configure --prefix=/usr/local/geos-3.6.3 编译:make 安装:make install 6. 安装libxml2扩展 进入/var/gisfile文件夹:cd /var/gisfile 解压文件:tar -zxvf libxml2-2.9.1.tar.gz -C /opt 进入到解压后目录:cd /opt/libxml2-2.9.1/ 将libxml2安装到/usr/local/libxml2-2.7.2目录下 注: (这个目录不要和上传目录一样,否则会报错):./configure --prefix=/usr/local/libxml2-2.9.1 --with-python=no 编译:make 安装:make install 7. 安装proj拓展 进入/var/gisfile文件夹:cd /var/gisfile 解压文件:tar -zxvf proj-5.2.0.tar.gz -C /opt 进入到解压后目录:cd /opt/proj-5.2.0 将proj安装到/usr/local/proj-5.2.0目录下 注: (这个目录不要和上传目录一样,否则会报错):./configure --prefix=/usr/local/proj-5.2.0 编译:make 安装:make install 8. 安装json-c拓展 进入/var/gisfile文件夹:cd /var/gisfile 解压文件:tar xzf json-c-json-c-0.13.1-20180305.tar.gz -C /opt 进入到解压后目录:cd /opt/json-c-json-c-0.13.1-20180305 将json-0.12安装到/usr/local/json-0.12目录下 注: (这个目录不要和上传目录一样,否则会报错):./configure --prefix=/usr/local/json-0.12 编译:make 安装:make install 9. 安装json-c拓展 需要安装perl依赖 进入/var/gisfile文件夹:cd /var/gisfile 解文件perl-5.32.1.tar.gz:tar xzf perl-5.32.1.tar.gz 进入到解压后文件夹:cd /var/gisfile/perl-5.32.1 执行命令:./Configure -des -Dprefix=/usr/local/perl 依次执行命令:make make test make install 查看是否安装成功:perl –v 如果该命令不能用就使用:perl –version 安装postgis 进入/var/gisfile文件夹:cd /var/gisfile 解压文件:tar -zxvf postgis-2.5.1.tar.gz -C /opt 进入到解压后目录:cd /opt/postgis-2.5.1 分行复制,不要复制 \ 不然执行会报错,复制到linux中手动加上\ ,\后面不要有空格 执行命令: ./configure --prefix=/usr/local/postgis \ --with-pgconfig=/usr/local/postgresql/bin/pg_config \ --with-xml2config=/usr/local/libxml2-2.9.1/bin/xml2-config \ --with-geosconfig=/usr/local/geos-3.6.3/bin/geos-config \ --with-gdalconfig=/usr/local/gdal-2.0.0/bin/gdal-config \ --with-projdir=/usr/local/proj-5.2.0 如果出现:configure: error: could not find GDAL错误 执行命令:vi /etc/ld.so.conf 在里面添加: /usr/local/lib /usr/local/postgresql/lib 然后在执行上面的步骤
tar -zxvf gdal-2.0.0.tar.gz -C /opt
cd /opt/gdal-2.0.0
./configure --prefix=/usr/local/gdal-2.0.0
make
make install
tar -jxf geos-3.6.3.tar.bz2 -C /opt
cd /opt/geos-3.6.3/
./configure --prefix=/usr/local/geos-3.6.3
cd /opt/libxml2-2.9.1/
./configure --prefix=/usr/local/libxml2-2.9.1 --with-python=no
tar -zxvf proj-5.2.0.tar.gz -C /opt
cd /opt/proj-5.2.0
./configure --prefix=/usr/local/proj-5.2.0
tar xzf json-c-json-c-0.13.1-20180305.tar.gz -C /opt
cd /opt/json-c-json-c-0.13.1-20180305
./configure --prefix=/usr/local/json-0.12
tar xzf perl-5.32.1.tar.gz
cd /var/gisfile/perl-5.32.1
./Configure -des -Dprefix=/usr/local/perl
make make test make install
perl –v
perl –version
tar -zxvf postgis-2.5.1.tar.gz -C /opt
cd /opt/postgis-2.5.1
./configure --prefix=/usr/local/postgis \ --with-pgconfig=/usr/local/postgresql/bin/pg_config \ --with-xml2config=/usr/local/libxml2-2.9.1/bin/xml2-config \ --with-geosconfig=/usr/local/geos-3.6.3/bin/geos-config \ --with-gdalconfig=/usr/local/gdal-2.0.0/bin/gdal-config \ --with-projdir=/usr/local/proj-5.2.0
编译:make 安装:make install 10. 安装postgis拓展 切换到postgres用户:su postgres 执行:psql 创建数据库:create database postgis; 切换到postgis数据库:\c postgis 执行命令:create extension postgis; 如果报错:ERROR: could not load library “/usr/local/postgresql/lib/postgis-2.5.so”: libgeos_c.so.1: 无法打开共享对象文件: 没有那个文件或目录 执行命令(lib后面的文件):ldd /usr/local/postgresql/lib/postgis-2.5.so 缺少so文件,直接把/usr/local对应的安装文件里面复制到postgresql的lib文件夹下 执行命令:cp /usr/local/geos-3.6.3/lib/libgeos_c.so.1 /usr/local/postgresql/lib/ 执行命令:cp /usr/local/proj-5.2.0/lib/libproj.so.13 /usr/local/postgresql/lib/ 执行命令:cp /usr/local/libxml2-2.9.1/lib/libxml2.so.2 /usr/local/postgresql/lib/ 再次执行:ldd /usr/local/postgresql/lib/postgis-2.5.so 再切换到postgis数据库执行:create extension postgis; 报错:could not load library “/usr/local/postgresql/lib/rtpostgis-2.5.so”: libgdal.so.20: 无法打开共享对象文件: 没有那个文件或目录 执行命令(lib后面的文件):ldd /usr/local/postgresql/lib/rtpostgis-2.5.so 执行命令:cp /usr/local/gdal-2.0.0/lib/libgdal.so.20 /usr/local/postgresql/lib/ 再次执行:ldd /usr/local/postgresql/lib/rtpostgis-2.5.so 如果创建拓展报错:ERROR: could not load library “/usr/local/postgresql/lib/rtpostgis-2.0.so”:libpq.so.5: cannot open shared object file: No such file or directory 把postgresql安装包里libpq.so.5的添加到64位系统中:
create database postgis;
\c postgis
create extension postgis;
ldd /usr/local/postgresql/lib/postgis-2.5.so
cp /usr/local/geos-3.6.3/lib/libgeos_c.so.1 /usr/local/postgresql/lib/
cp /usr/local/proj-5.2.0/lib/libproj.so.13 /usr/local/postgresql/lib/
cp /usr/local/libxml2-2.9.1/lib/libxml2.so.2 /usr/local/postgresql/lib/
ldd /usr/local/postgresql/lib/rtpostgis-2.5.so
cp /usr/local/gdal-2.0.0/lib/libgdal.so.20 /usr/local/postgresql/lib/
ln -s /usr/local/postgresql-9.5.7/src/interfaces/libpq/libpq.so.5 /usr/lib64/libpq.so.5
再次切换到postgis数据库执行:create extension postgis; 为了更好的使用postgis功能,决定把所有的扩展都装了:create extension postgis_topology; 测试postgis是否成功,打开navicat打开postgis数据库 执行sql:select st_buffer(st_geometryfromtext ('POINT (0 0)',0),100 ) 如果有结果说明已完成!
create extension postgis_topology;
select st_buffer(st_geometryfromtext ('POINT (0 0)',0),100 )