• CentOS7安装配置PostgreSQL9.6


    本文涉及CentOS7下PostgreSQL9.6的yum安装,访问配置及简单使用。

    一.验证环境

    1. 操作系统

    CentOS-7-x86_64-Everything-1511

    2. PostgresSQL版本

    PostgreSQL 9.6.3:https://www.postgresql.org/download/linux/RedHat/

    二.安装

    1. 安装rpm

    2. 安装客户端

    [root@psql_master ~]# yum install -y postgresql96

    3. 安装服务器端

    #yum安装postgresql,默认会建一个名为”postgres”的系统账号,用于执行PostgreSQL;
    #同时数据库中也会生成一个名为”postgres”的数据库用户,且密码已自动生成,需要进入数据库后修改;
    #PostgreSQL在数据库用户同名的系统账号下登录免密。
    [root@psql_master ~]# yum install -y postgresql96-server

    4. 初始化

    [root@psql_master bin]# /usr/pgsql-9.6/bin/postgresql96-setup initdb

    5. 设置开机启动

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

    6. 启动

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

    三.配置使用

    1. 修改用户密码

    #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 'postgres'

    2. 允许远程访问

    修改postgreSQL的配置文件/var/lib/pgsql/9.6/data/postgresql.conf
    #配置文件中,默认只能本机访问postgresql; #修改listen_addresses = 'localhost'为listen_addresses = '*',允许所有远程访问; #修改配置文件需要重启服务。 [root@psql_master ~]# sed -i "s|#listen_addresses = 'localhost'|listen_addresses = '*'|g" /var/lib/pgsql/9.6/data/postgresql.conf

    3. 主机认证

    #在第82行之后,”IPv4 local connections”下新增允许的客户端;
    #“host” 代表主机类型,第一个“all”代表db ,第二个“all”代表user ,“172.29.3.67/32” 代表client ip,“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.6/data/pg_hba.conf
    host    all             all             172.29.3.67/32          trust

    4. 设置环境变量

    [root@psql_master ~]# vim /etc/profile
    export PATH=$PATH:/usr/pgsql-9.6/bin
    
    [root@psql_master ~]# source /etc/profile

    5. 重启服务

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

    6. iptables

    #postgresql默认开启tcp5432端口
    [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

    四.使用验证

    1. 查看端口

    [root@psql_master ~]# netstat -tunlp

    2. 简单使用

    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;

    3. pgadmin连接postgresql

    pgadmin下载地址:https://www.pgadmin.org/download/

    截至2017-05-19的版本是:pgAdmin 4 v1.5

    1)添加服务器

    打开pgadmin—>添加新的服务器—>(通常标签)名称自定义—>(connection标签)主机名称与postgresql用户密码按需填写,其余可采用默认配置—>保存。

    2)图形化查看

    PostgreSQL 设置允许访问IP

    PostgreSQL安装后默认只能localhost:5432访问
    检验方法:

    curl localhost:5432
    # 访问成功提示
    curl: (52) Empty reply from server

    curl 127.0.0.1:5432
    # 访问不成功提示
    curl: (7) Failed to connect to 172.17.201.227 port 5432: Connection refused

    修改pg_hba.conf

    pg_hba.confpostgresql.conf的存放目录都在(9.5版本)/etc/postgresql/9.5/main

    host  all    all    192.168.1.0/24    trust

    表示允许网段192.168.1.0上的所有主机使用所有合法的数据库用户名访问数据库,
    其中,数字24是子网掩码,表示允许192.168.1.0–192.168.1.255的计算机访问

    修改postgresql.conf

    修改listen_addresses=’localhost’, 并放开注释(默认监听localhost)

    # 192.168.1.111 为postgresql本机内网地址
    listen_addresses='192.168.1.111'

    重启postgresql

    sudo /etc/init.d/postgresql restart

    在本机

    curl 192.168.1.111:5432
    # 访问成功提示
    curl: (52) Empty reply from server

    在内网其他机器

    curl 192.168.1.111:5432
    # 访问成功提示
    curl: (52) Empty reply from server




  • 相关阅读:
    【css】用纯 CSS 判断鼠标进入的方向
    【window】系统禁止运行脚本
    【go】VSCode配置Go插件和debug设置
    【PHP】php之Trait详解
    【layui】laydata 自定义日期之外格式的处理办法
    【PHP】防止视频资源被下载的解决办法
    【Markdown】 编辑器Editor.md集成使用
    代码之间为什么要加空格?
    求求你,别问了,Java字符串是不可变的
    养生吧,程序员!
  • 原文地址:https://www.cnblogs.com/duanxz/p/3644094.html
Copyright © 2020-2023  润新知