美文网首页postgres
【PostgreSQL】基于CentOS系统安装PostgreS

【PostgreSQL】基于CentOS系统安装PostgreS

作者: 宝耶需努力 | 来源:发表于2022-02-25 20:15 被阅读0次

    一、参考链接

    阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区

    postgresql镜像-postgresql下载地址-postgresql安装教程-阿里巴巴开源镜像站

    二、PostgreSQL介绍

    PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统。POSTGRES的许多领先概念只是在比较迟的时候才出现在商业网站数据库中。PostgreSQL支持大部分的SQL标准并且提供了很多其他现代特性,如复杂查询、外键、触发器、视图、事务完整性、多版本并发控制等。同样,PostgreSQL也可以用许多方法扩展,例如通过增加新的数据类型、函数、操作符、聚集函数、索引方法、过程语言等。另外,因为许可证的灵活,任何人都可以以任何目的免费使用、修改和分发PostgreSQL。(——PostgreSQL_百度百科)

    三、PostgreSQL安装

    本实验基于CentOS 7.9系统进行演示操作

     [root@postgresql ~]# cat /etc/redhat-release 
     CentOS Linux release 7.9.2009 (Core)
    

    安装准备

     修改主机名
     # hostnamectl set-hostname prostgresql
     
     关闭防火墙
     # systemctl stop firewalld
     # systemctl disable firewalld
     
     关闭SELinux安全模式
     # setenforce 0
     # getenforce 
     
     配置网络信息并测试连通性
     vim /etc/sysconfig/network-scripts/ifcfg-ens32
     主要修改如下参数信息即可。
     BOOTPROTO=static
     ONBOOT=yes
     IPADDR=192.168.200.25
     PREFIX=24
     GATEWAY=192.168.200.1
     DNS1=192.168.200.1
     按:wq保存退出。
     
     重启网卡
     # systemctl restart network
     # ping bing.com
     
     配置阿里云CentOS YUM源,加快镜像访问下载
     参考链接:https://blog.csdn.net/qq_45392321/article/details/121450443
     # yum clean all
     # yum makecache
     # yum repolist
     
     升级系统🆙
     # yum update
     
     检查postgresql是否安装
     # rpm -qa | grep postgre
     
     检查PostgreSQL 安装位置
     # rpm -qal | grep postgres
     
     新增postgres用户组
     # groupadd postgres
     
     新增postgres用户并且设置这个postgres用户属于创建的postgres用户组
     # useradd -g postgres postgres
     
     修改postgres用户密码
     [root@postgresql ~]# passwd postgres
     Changing password for user postgres.
     New password: 
     BAD PASSWORD: The password is a palindrome
     Retype new password: 
     passwd: all authentication tokens updated successfully.
     [root@postgresql ~]# 
     
     重启系统
     reboot
    

    1、查询并安装postgresql-server

     yum list | grep postgresql-server
     
     yum install -y postgresql-server.x86_64</pre>
    
    ![image-20220224135741784](https://img.haomeiwen.com/i21120971/ef223f72732a02ae.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 
    
    ### 2、初始化postgresql-server数据库
    
    > **service postgresql initdb**
    
    ```sh
     # service postgresql initdb
     Hint: the preferred way to do this is now "postgresql-setup initdb"
     Initializing database ... OK
    

    3、启动postgresql服务并设置开机自启动

     systemctl start postgresql
     systemctl enable postgresql
    

    4、查看postgresql服务状态

     systemctl status postgresql
    

    5、查看服务进程信息

     [root@postgresql ~]# ps -ef | grep postgres
     postgres   1405      1  0 16:05 ?        00:00:00 /usr/bin/postgres -D /var/lib/pgsql/data -p 5432
     postgres   1406   1405  0 16:05 ?        00:00:00 postgres: logger process 
     postgres   1408   1405  0 16:05 ?        00:00:00 postgres: checkpointer process 
     postgres   1409   1405  0 16:05 ?        00:00:00 postgres: writer process 
     postgres   1410   1405  0 16:05 ?        00:00:00 postgres: wal writer process 
     postgres   1411   1405  0 16:05 ?        00:00:00 postgres: autovacuum launcher process 
     postgres   1412   1405  0 16:05 ?        00:00:00 postgres: stats collector process 
     root       1440   1131  0 16:07 pts/0    00:00:00 grep --color=auto postgres
     [root@postgresql ~]# 
    

    6、查看postgresql服务端口是否开启

     # ss -tunpl | grep postgres
     tcp    LISTEN     0      128    127.0.0.1:5432                  *:*                   users:(("postgres",pid=1349,fd=4))
     tcp    LISTEN     0      128       [::1]:5432               [::]:*                   users:(("postgres",pid=1349,fd=3))
     [root@postgresql ~]#
    
     # netstat -tunpl | grep 5432
     tcp    0   0 127.0.0.1:5432    0.0.0.0:*    LISTEN      1349/postgres 
     tcp6   0   0 ::1:5432          :::*         LISTEN      1349/postgres
    

    四、测试连接

    1、切换postgres用户

     [root@postgresql ~]# su postgres
     [postgres@postgresql root]$ 
    

    2、连接数据库

     [root@postgresql ~]# su postgres
     [postgres@postgresql root]$ psql -U postgres
     could not change directory to "/root"
     psql (9.2.24)
     Type "help" for help.
     
     postgres=# 
     
     # 使用 \l 用于查看已经存在的数据库:
     postgres=# \l
      List of databases
      Name    |  Owner   | Encoding  | Collate | Ctype |   Access privileges 
     -----------+----------+-----------+---------+-------+-----------------------
      postgres  | postgres | SQL_ASCII | C       | C     | 
      template0 | postgres | SQL_ASCII | C       | C     | =c/postgres          +
      |          |           |         |       | postgres=CTc/postgres
      template1 | postgres | SQL_ASCII | C       | C     | =c/postgres          +
      |          |           |         |       | postgres=CTc/postgres
     (3 rows)
     
     postgres=# 
     
     # 进入命令行工具,可以使用 \help 来查看各个命令的语法
     postgres-# \help
    

    3、创建数据库

     # 创建一个 runoobdb 的数据库
     postgres=# CREATE DATABASE xybdiy;
     CREATE DATABASE
     postgres=# 
     
     # 使用 \c + 数据库名 来进入数据库
     postgres=# \c xybdiy
     You are now connected to database "xybdiy" as user "postgres".
     xybdiy=# 
    

    4、创建表格

     # 创建了一个表,表名为 COMPANY 表格,主键为 ID,NOT NULL 表示字段不允许包含 NULL 值
     xybdiy=# CREATE TABLE COMPANY(
     xybdiy(#    ID INT PRIMARY KEY     NOT NULL,
     xybdiy(#    NAME           TEXT    NOT NULL,
     xybdiy(#    AGE            INT     NOT NULL,
     xybdiy(#    ADDRESS        CHAR(50),
     xybdiy(#    SALARY         REAL
     xybdiy(# );
     NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "company_pkey" for table "company"
     CREATE TABLE
     
     # 使用 \d 命令来查看表格是否创建成功
     xybdiy=# \d
      List of relations
      Schema |  Name   | Type  |  Owner 
     --------+---------+-------+----------
      public | company | table | postgres
     (1 row)
     
     xybdiy=# CREATE TABLE DEPARTMENT(
     xybdiy(#    ID INT PRIMARY KEY      NOT NULL,
     xybdiy(#    DEPT           CHAR(50) NOT NULL,
     xybdiy(#    EMP_ID         INT      NOT NULL
     xybdiy(# );
     NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "department_pkey" for table "department"
     CREATE TABLE
     xybdiy=# \d
      List of relations
      Schema |    Name    | Type  |  Owner 
     --------+------------+-------+----------
      public | company    | table | postgres
      public | department | table | postgres
     (2 rows)
     
     xybdiy=#
    

    五、修改配置文件

    1、修改postgresql的配置文件

     # vim /var/lib/pgsql/data/postgresql.conf
     # 修改监听IP
     listen_addresses = '*'
     
     # 打开日志采集器
     logging_collector = on
     
     # 设置日志目录
     log_directory = 'pg_log'
    

    2、修改 pg_hba.conf 服务连接配置文件

     # vim /var/lib/pgsql/data/pg_hba.conf
      77 # TYPE  DATABASE   USER      ADDRESS                 METHOD
      78 
      79 # "local" is for Unix domain socket connections only
      80 local   all        all                               trust
      81 # IPv4 local connections:
      82 host    all        all          127.0.0.1/32         trust
      83 host    all        all          0.0.0.0/0            trust
      84 # IPv6 local connections:
      85 host    all        all          ::1/128               md5
    

    3、重启postgresql服务

     # systemctl restart postgresql
    

    五、测试远程连接

    测试连接

    image-20220225171841803

    测试成功后,连接

    image-20220225171804258

    连接成功

    image-20220225172044099 image-20220225172032907

    至此,安装PostgreSQ数据库完成。

    相关文章

      网友评论

        本文标题:【PostgreSQL】基于CentOS系统安装PostgreS

        本文链接:https://www.haomeiwen.com/subject/uhkfrrtx.html