• PostGIS 安装教程(Linux)(一)


    ##本文分两部分,第一部分讲linux下postgresql的安装,第二部分讲postgis的安装

    ##感谢作者:https://www.linuxidc.com/Linux/2017-10/147536.htm

    安装环境:

    CentOS7-x86_64

    postgresql9.4

    postgis2.4

    步骤:

    一、安装PostgreSQL

    1. 安装rpm

    [root@psql_master ~]# yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

    *****可以在https://www.postgresql.org/download/linux/redhat/网址上找对应版本

    2. 安装客户端

    [root@psql_master ~]# yum install postgresql94

    3. 安装服务器端

    #yum安装postgresql,默认会建一个名为”postgres”的系统账号,用于执行PostgreSQL;

    #同时数据库中也会生成一个名为”postgres”的数据库用户,且密码已自动生成,需要进入数据库后修改;

    #PostgreSQL在数据库用户同名的系统账号下登录免密。

    [root@psql_master ~]# yum install postgresql94-server

    4. 初始化

    [root@psql_master ~]# /usr/pgsql-9.4/bin/postgresql94-setup initdb

    5. 设置开机启动

    [root@psql_master ~]# systemctl enable postgresql-9.4

    6. 启动

    [root@psql_master ~]# systemctl start postgresql-9.4

    7. 修改用户密码

    #yum安装postgresql,默认会建一个名为”postgres”的系统账号,用于执行PostgreSQL;

    [root@psql_master ~]# su - postgres

    #切换用户后,提示符变更为“-bash-4.2$”;

    #同时数据库中也会生成一个名为”postgres”的数据库用户,且密码已自动生成;

    #PostgreSQL在数据库用户同名的系统账号下登录免密;

    -bash-4.2$ psql -U postgres

    #进入数据库后修改密码;

    postgres=# alter user postgres with password '123456';

    8. 允许远程访问

    #配置文件中,默认只能本机访问postgresql;

    #修改listen_addresses = 'localhost'为listen_addresses = '*',允许所有远程访问;

    #修改配置文件需要重启服务。

    [root@psql_master ~]# sed -i "s|#listen_addresses = 'localhost'|listen_addresses = '*'|g" /var/lib/pgsql/9.4/data/postgresql.conf

    9. 主机认证

    #在第82行之后,”IPv4 local connections”下新增允许的客户端;

    #“host” 代表主机类型,第一个“all”代表db ,第二个“all”代表user ,“172.29.3.67/32” 代表client ip(0.0.0.0/0表示不限制),“trust”代表认证方式;

    #认证方式除“trust”外,还有“peer”, “ident”, “md5”, “password”等,具体可参考pg-hba文件: https://www.postgresql.org/docs/current/static/auth-pg-hba-conf.html

    #修改pg.hba文件需要重启服务。

    [root@psql_master ~]# vim /var/lib/pgsql/9.4/data/pg_hba.conf host all all 0.0.0.0/0 trust

     ##vim操作:i进入编辑状态,esc退出编辑状态,:wq保存并退出

     ##这里在后面操作过程中,可能会出现认证失败的报错。如下:

     ##可以在这pg_hba.conf,将peer处改为trust(这里测试环境,如果正式环境不建议改为trust,可改为md5)

    10. 设置环境变量

    [root@psql_master ~]# vim /etc/profile

    ##添加export PATH=$PATH:/usr/pgsql-9.4/bin

    [root@psql_master ~]# source /etc/profile

    11. 重启服务

    [root@psql_master ~]# systemctl restart postgresql-9.4

    12. iptables

    #postgresql默认开启tcp5432端口

    #这里可能有部分系统没有iptables服务,restart时会报错,重启机器即可

    [root@psql_master ~]# vim /etc/sysconfig/iptables

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT

    [root@psql_master ~]# service iptables restart

    13. 查看端口

    #安装完成后,测试看如果有5432端口即可

    [root@psql_master ~]# netstat -tunlp

    14. 简单使用(命令需以";"结束)

    1)创建用户

    postgres=# create user postuser1 with password 'user1@123';

    2)创建数据库

    #同时指定数据库的所有者

    postgres=# create database postdb1 owner postuser1;

    3)数据库赋权

    #未赋权则账户只能登录控制台

    postgres=# grant all privileges on database postdb1 to postuser1;

    4)登录新建数据库

    #在操作系统层使用新建的账号登录新建的数据库,登录后提示符为“postdb1=>”;

    #如果在postgres账户下直接使用“postgres=# c postdb1;”登录,则登录用户依然是postgres,

    -bash-4.2$ psql -U postuser1 -d postdb1 -h 127.0.0.1 -p 5432

    5)创建表

    postdb1=> create table tb1( id int primary key, name VARCHAR(20), salary real );

    6)插入数据

    postdb1=> insert into tb1( id, name, salary) values( 101, 'Mike', 5000.00 );

    7)查询

    postdb1=>select * from tb1;

  • 相关阅读:
    68、成员列表初始化?
    67、类成员初始化方式?构造函数的执行顺序 ?为什么用成员初始化列表会快一 些?
    64、malloc申请的存储空间能用delete释放吗?
    63、new和delete的实现原理, delete是如何知道释放内存的大小的额?
    62、delete p、delete [] p、allocator都有什么作用?
    60、C++模板是什么,你知道底层怎么实现的?
    nyoj--814--又见拦截导弹(动态规划+贪心)
    hdoj--1950--Bridging signals(二分查找+LIS)
    nyoj--214--单调递增子序列(二)(二分查找+LIS)
    hdoj--1010--Tempter of the Bone(搜索+奇偶剪枝)
  • 原文地址:https://www.cnblogs.com/giser-s/p/11195419.html
Copyright © 2020-2023  润新知