Linux安装摆设数据库:PostgreSQL14

金歌  金牌会员 | 2024-12-6 20:33:32 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 918|帖子 918|积分 2754


   写在前面:
  

  • 本文在部分内容方面,参考了CSDN部分博主的文章内容,如有得罪请联系博主协商处理。
  • 本文全部安装部分的内容和部分配置的内容都经博主实测有用,如有错误的地方,欢迎各人指正学习。
  • 文章创作不易,请各位看官给个三连,博主在此先行感谢了!!!
  一、安装环境

1、假造机环境



  • 主机摆设环境:
       Linux 版本处理器类型PostgreSQL 版本CentOS Linux release 7.9x86_64postgresql 14
2、下载安装包



  • 官网地址:https://www.postgresql.org
  • 下载地址:https://www.postgresql.org/download/

二、安装步调

1、在线安装 PGSQL



  • 检察 Linux 版本和处理器类型
    1. $ cat /etc/centos-release                        # 查看Linux版本
    2. CentOS Linux release 7.9.2009 (Core)
    3. $ uname -m                                                        # 查看处理器类型
    4. x86_64
    复制代码
  • 在官网选择合适的版本的 pgsql 数据库

  • 利用 yum 下载安装 pgsql 服务
    1. # 下载rpm安装包
    2. $ yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
    3. # 使用rpm包安装
    4. $ yum install -y postgresql14-server
    复制代码
  • 检察安装的 postgresql 版本,确认是否安装成功
    1. $ rpm -qa | grep postgresql
    2. postgresql14-libs-14.10-1PGDG.rhel7.x86_64
    3. postgresql14-14.10-1PGDG.rhel7.x86_64
    4. postgresql14-server-14.10-1PGDG.rhel7.x86_64
    复制代码
  • 修改默认数据目录,并初始化 pgsql 数据库
    1. # 修改默认数据目录
    2. $ mkdir -p /data/pgsql/data
    3. $ chown -R postgres:postgres /data/pgsql
    4. $ vim /usr/lib/systemd/system/postgresql-14.service
    5. ...
    6. Environment=PGDATA=/data/pgsql/data/
    7. ...
    8. # 初始化pgsql数据库
    9. $ /usr/pgsql-14/bin/postgresql-14-setup initdb
    10. Initializing database ... OK
    11. # 设置pgsql服务开机自启
    12. $ systemctl enable postgresql-14
    13. Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql-14.service to /usr/lib/systemd/system/postgresql-14.service.
    14. # 启动pgsql服务
    15. $ systemctl start postgresql-14
    复制代码
  • 检察服务的运行状态
    1. $ systemctl status postgresql-14
    复制代码

2、离线安装 PGSQL



  • 官网下载地址:https://yum.postgresql.org/rpmchart/
  • 离线安装采用 rpm 包的安装方式,官网选择下载对应版本的 rpm 包



  • 此次安装选择 postgresql14-14.11 版本的 rpm 包下载安装

  • 安装选择 postgresql14 的 rpm 包及其版本如下
    1. postgresql14-14.11-1PGDG.rhel7.x86_64.rpm
    2. postgresql14-libs-14.11-1PGDG.rhel7.x86_64.rpm
    3. postgresql14-server-14.11-1PGDG.rhel7.x86_64.rpm
    4. postgresql14-contrib-14.11-1PGDG.rhel7.x86_64.rpm
    复制代码
  • 上传安装包至假造机中的 /root/postgresql 目录下
    1. $ mkdir -p /root/postgresql
    2. $ ls /root/postgresql/
    3. postgresql14-14.11-1PGDG.rhel7.x86_64.rpm
    4. postgresql14-contrib-14.11-1PGDG.rhel7.x86_64.rpm
    5. postgresql14-libs-14.11-1PGDG.rhel7.x86_64.rpm
    6. postgresql14-server-14.11-1PGDG.rhel7.x86_64.rpm
    复制代码
  • 按照如下顺序安装 PGSQL14,或者无视依靠关系安装
    1. $ rpm -ivh postgresql14-libs-14.11-1PGDG.rhel7.x86_64.rpm
    2. $ rpm -ivh postgresql14-14.11-1PGDG.rhel7.x86_64.rpm
    3. $ rpm -ivh postgresql14-server-14.11-1PGDG.rhel7.x86_64.rpm
    4. $ rpm -ivh postgresql14-contrib-14.11-1PGDG.rhel7.x86_64.rpm
    5. # 安装方式二选一即可
    6. $ rpm -ivh *.rpm --nodeps --force
    复制代码
  • 若出现如下问题,则需要安装相关依靠包或升级 python至3.6 版本以上
    1. # 问题说明: 缺少python3-libs-3.6.x及以上版本的依赖包
    2. $ rpm -ivh postgresql14-contrib-14.11-1PGDG.rhel7.x86_64.rpm
    3. 警告:postgresql14-contrib-14.11-1PGDG.rhel7.x86_64.rpm: 头V4 RSA/SHA1 Signature, 密钥 ID 73e3b907: NOKEY
    4. 错误:依赖检测失败:
    5.         libpython3.6m.so.1.0()(64bit) 被 postgresql14-contrib-14.11-1PGDG.rhel7.x86_64 需要
    6. # 解决办法1:
    7. $ yum -y install libxslt libicu python36-libs python2-libs libperl.so
    8. # 解决办法2: (推荐)
    9. $ yum -y install libpython3.6m.so.1.0
    10. # 内网环境下载方式: (下载不安装) 将下载好的rpm包上传虚拟机安装
    11. $ yum install --downloadonly --downloaddir=/root/pg14_rpm libpython3.6m.so.1.0
    12. $ rpm -ivh *.rpm --nodeps --force
    复制代码
  • 检察安装的 postgresql 版本,确认是否安装成功
    1. $ rpm -qa | grep postgresql
    2. postgresql14-libs-14.11-1PGDG.rhel7.x86_64
    3. postgresql14-14.11-1PGDG.rhel7.x86_64
    4. postgresql14-contrib-14.11-1PGDG.rhel7.x86_64
    5. postgresql14-server-14.11-1PGDG.rhel7.x86_64
    复制代码
  • 修改默认数据目录,并初始化 pgsql 数据库
    1. # 修改默认数据目录/var/lib/pgsql/14/data/
    2. $ mkdir -p /data/pgsql/data
    3. $ chown -R postgres:postgres /data/pgsql
    4. $ vim /usr/lib/systemd/system/postgresql-14.service
    5. ...
    6. Environment=PGDATA=/data/pgsql/data/
    7. ...
    8. # 初始化pgsql数据库
    9. $ /usr/pgsql-14/bin/postgresql-14-setup initdb
    10. Initializing database ... OK
    11. # 重新加载systemd系统管理守护程序的命令
    12. $ systemctl daemon-reload
    13. # 设置pgsql服务开机自启
    14. $ systemctl enable postgresql-14
    15. Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql-14.service to /usr/lib/systemd/system/postgresql-14.service.
    16. # 启动pgsql服务
    17. $ systemctl start postgresql-14
    复制代码
3、源码安装 PGSQL



  • 官网下载 pgsql 源码包,官网地址:https://www.postgresql.org/ftp/source/

  • 此次选择 v14.10 版本,下载**postgresql-14.11.tar.gz**源码包

  • 官网下载**postgresql-14.11.tar.gz**源码包,或利用 **wget** 命令下载源码包
    1. $ wget https://ftp.postgresql.org/pub/source/v14.11/postgresql-14.11.tar.gz
    2. $ ll -h postgresql-14.11.tar.gz
    3. -rw-r--r-- 1 root root 28M 4月  24 21:58 postgresql-14.11.tar.gz
    复制代码
  • 解压**postgresql-14.11.tar.gz**源码包,并安装所需的相关依靠包
    1. # 安装相关依赖
    2. $ yum install -y perl-ExtUtils-Embed readline-devel zlib-devel pam-devel libxml2-devel libxslt-devel openldap-devel python-devel gcc-c++ openssl-devel cmake
    3. # 解压源码包
    4. $ tar -zxvf  postgresql-14.11.tar.gz
    复制代码
  • 创建安装目录,编译安装 pgsql 服务
    1. $ mkdir -p /data/pgsql
    2. $ cd /root/postgresql-14.11
    3. $ ./configure --prefix=/data/pgsql
    4. $ make && make install
    复制代码
  • 创建用户、组、数据目录
    1. # 创建组
    2. $ groupadd postgres
    3. # 创建用户
    4. $ useradd -g postgres postgres
    5. # 创建数据目录
    6. $ mkdir –p /data/pgsql/data
    7. # 修改目录归属
    8. $ chown -R postgres:postgres /data/pgsql/
    复制代码

  • 配置用户的环境变量
    1. $ vim /home/postgres/.bash_profile
    2. ...
    3. export PGHOME=/data/pgsql/
    4. export PGDATA=$PGHOME/data
    5. export PATH=$PATH:$HOME/bin:$PGHOME/bin
    6. $ source /home/postgres/.bash_profile
    复制代码

  • 初始化 pgsql 数据库,并启动 pgsql 数据库服务
    1. $ su - postgres
    2. $ /data/pgsql/bin/initdb -D /data/pgsql/data/
    3. $ /data/pgsql/bin/pg_ctl -D /data/pgsql/data/ -l /data/pgsql/logfile stop       
    4. $ /data/pgsql/bin/pg_ctl -D /data/pgsql/data/ -l /data/pgsql/logfile start       
    复制代码
  • 修改 postgres 用户的账号暗码
    1. # 登录postgres用户
    2. $ su - postgres
    3. # 登录pgsql数据库
    4. -bash-4.2$ psql
    5. # 修改postgres用户密码
    6. postgres=# alter user postgres with password 'postgres';
    7. # 重新加载服务器配置文件, 使配置文件生效
    8. postgres=# select pg_reload_conf();       
    复制代码
  • 修改 pgsql 配置文件,添加口令认证
    1. $ vim /data/pgsql/data/pg_hba.conf
    2. # TYPE  DATABASE        USER    ADDRESS         METHOD
    3. # "local" is for Unix domain socket connections only
    4. local   all             all                     md5
    5. # IPv4 local connections:
    6. host    all             all     0.0.0.0/0       md5
    7. host    all             all     127.0.0.1/32    md5
    8. # IPv6 local connections:
    9. host    all             all     ::1/128         md5
    10. # Allow replication connections from localhost, by a user with the
    11. # replication privilege.
    12. local   replication     all                     md5
    13. host    replication     all     127.0.0.1/32    md5
    14. host    replication     all     ::1/128         md5
    复制代码
  • 修改 pgsql 配置文件,答应远程访问
    1. $ vim /data/pgsql/data/postgresql.conf
    2. ...
    3. 60 #listen_addresses = 'localhost'
    4. 61 listen_addresses = '*'
    复制代码
  • 重新启动 pgsql 服务,使配置文件生效
    1. $ su - postgres
    2. $ /data/pgsql/bin/pg_ctl -D /data/pgsql/data/ -l /data/pgsql/logfile stop       
    3. $ /data/pgsql/bin/pg_ctl -D /data/pgsql/data/ -l /data/pgsql/logfile start       
    复制代码
三、根本操作

1、初始化配置



  • 检察 pgsql 数据库相关文件
    1. # 1. 检查 PostgreSQL 服务端的所有相关文件所在目录
    2. $ rpm -ql postgresql14-server
    3. # 2. 检查 PostgreSQL 客户端的所有相关文件所在目录
    4. $ rpm -ql postgresql14
    5. # 3. 查看 PostgreSQL 所有相关的命令文件
    6. $ ls /usr/pgsql-14/bin/
    复制代码
  • 检察数据库的超级用户:postgres
    1. # 安装pgsql数据库, 会默认创建postgres用户
    2. $ cat /etc/passwd | grep postgres
    3. postgres:x:26:26:PostgreSQL Server:/home/postgres:/bin/bash
    复制代码
  • 修改 postgres 用户的账号暗码
    1. # 登录postgres用户
    2. $ su - postgres
    3. # 登录pgsql数据库
    4. -bash-4.2$ psql
    5. # 修改postgres用户密码
    6. postgres=# alter user postgres with password 'postgres';
    7. # 重新加载服务器配置文件, 使配置文件生效
    8. postgres=# select pg_reload_conf();       
    复制代码
          注:此时修改后仍然无法利用暗码登录,需要修改配置文件设置需要暗码登录模式
  • 修改配置文件,设置需要暗码验证登录模式
    1. $ vim /data/pgsql/data/pg_hba.conf
    2. # TYPE  DATABASE            USER   ADDRESS        METHOD
    3. local   all                 all                   md5
    4. host    all                 all    127.0.0.1/32   scram-sha-256
    5. host    all                 all    ::1/128        scram-sha-256
    6. local   replication         all                   md5
    7. host    replication         all    127.0.0.1/32   scram-sha-256
    8. host    replication         all    ::1/128        scram-sha-256
    9. # method=md5表示使用用户口令密码登录,修改peer为md5
    10. # method=peer表示仅当数据库用户名与操作系统用户名相同时才允许连接
    复制代码
    登录验证方式:peer、md5、scram-sha-256(1) peer:本地连接认证方法,利用操作体系的用户身份验证来确定是否答应连接。

    • 验证说明:数据库会检查客户端的操作体系用户名和数据库角色名是否匹配,如果匹配则答应连接
    • 适用场景:适用于本地连接,要求操作体系用户和数据库角色一一对应。
    (2) md5:口令的认证方法,客户端连接到数据库时需要提供用户名和暗码。
       

    • 验证说明:暗码以 MD5 加密存储在数据库中,客户端发送经过 MD5 加密的暗码进行验证。
    • 适用场景:适用于需要在客户端连接时提供暗码进行认证的场景,通常用于远程连接。
    (3) scram-sha-256:一种更安全的认证方法。
       

    • 验证说明:它提供了更强的暗码安全性和掩护机制,避免了传统的明文暗码传输和简朴哈希暗码存储的风险。
    • 适用场景:适用于需要更高安全性的场景,保举在支持的情况下利用。

  • 配置 PostgreSQL 数据库远程访问权限
    1. $ vim /data/pgsql/data/postgresql.conf
    2. 60 #listen_addresses = 'localhost'
    3. 61 listen_addresses = '*'
    复制代码
  • 设置答应全部 IP 访问 PostgreSQL 数据库
    1. $ vim /data/pgsql/data/pg_hba.conf
    2. # TYPE  DATABASE            USER   ADDRESS        METHOD
    3. local   all                 all                   md5
    4. host    all                 all    127.0.0.1/32   scram-sha-256
    5. # 新增配置行
    6. host    all             all    0.0.0.0/0      md5
    7. ...
    复制代码
  • 重新启动 PostgreSQL 数据库
    1. # RPM安装的服务启动方式
    2. $ systemctl restart postgresql-14.service
    3. # 源码安装的服务启动方式
    4. $ /data/pgsql/bin/pg_ctl -D /data/pgsql/data/ -l /data/pgsql/logfile stop
    5. $ /data/pgsql/bin/pg_ctl -D /data/pgsql/data/ -l /data/pgsql/logfile start
    复制代码
2、数据库登录



  • 登录数据库, psql 命令常见用法:
    1. # 1. 使用指定用户名连接到指定数据库
    2. $ psql -U username -d database_name
    3. # 2. 指定主机名连接到指定数据库
    4. $ psql -h host -U username -d database_name
    5. # 3. 连接到默认数据库并执行指定的SQL查询
    6. $ psql -c "SQL query"
    复制代码
  • 利用 postgres 用户登录 PostgreSQL 数据库
    1. $ psql -Upostgres -dpostgres
    2. 用户 postgres 的口令:
    3. postgres=# \l                                                        # 查看数据库列表
    复制代码

3、常用命令项



  • 常用 pgsql 数据库操作
    1. $ psql -U postgres -d postgres                # 登录数据库
    2. postgres=# \l                                                # 列出所有数据库
    3. postgres=# create database mydb;        # 创建数据库
    4. postgres=# drop database mydb;                # 删除数据库
    5. postgres=# \c mydb;                                        # 切换数据库
    6. postgres=# \q                                                # 退出数据库
    复制代码
  • 常用 pgsql 表操作
    1. -- 创建 student 表
    2. CREATE TABLE student (
    3.         student_id SERIAL PRIMARY KEY,
    4.         student_name VARCHAR(50) NOT NULL,
    5.         age INT,
    6.         class VARCHAR(20)
    7. );
    8. -- 创建 teacher 表
    9. CREATE TABLE teacher (
    10.         teacher_id SERIAL PRIMARY KEY,
    11.         teacher_name VARCHAR(50) NOT NULL,
    12.         subject VARCHAR(50),
    13.         experience_years INT
    14. );
    复制代码
    1. postgres=# \dt                                                # 列出所有表
    2. postgres=# \d teacher                                # 显示表结构
    3. postgres=# drop table teacher;                # 删除表
    复制代码
  • 常用 pgsql 数据操作
    1. -- 向 student 表插入数据
    2. INSERT INTO student (student_name, age, class) VALUES ('Alice', 20, 'Mathematics');
    3. INSERT INTO student (student_name, age, class) VALUES ('Bob', 22, 'Physics');
    4. -- 向 teacher 表插入数据
    5. INSERT INTO teacher (teacher_name, subject, experience_years) VALUES ('Mr. Smith', 'Mathematics', 10);
    6. INSERT INTO teacher (teacher_name, subject, experience_years) VALUES ('Ms. Johnson', 'Physics', 8);
    复制代码
    1. postgres=# select * from student;
    2. postgres=# update student SET age=19 WHERE student_name='Bob';
    3. postgres=# delete from student where student_name='Alice';
    复制代码
  • 常用 pgsql 用户和权限操作
    1. # 1. 创建用户
    2. postgres=# create user yyh with password '123qqq...A';
    3. # 2. 授予角色
    4. postgres=# grant pg_monitor to yyh;
    5. # 3. 撤销角色
    6. postgres=# revoke pg_monitor from yyh;
    7. # 4. 修改用户密码
    8. postgres=# alter user yyh with password '密码';
    9. # 5. 查看所有角色
    10. postgres=# select rolname from pg_roles;
    11. # 6. 查看用户信息
    12. postgres=# select * from pg_shadow;
    13. # 7. 修改密码有效期
    14. postgres=# alter user yyh with valid until '2024-12-03 09:00:00';
    15. # 8. 查看用户表权限
    16. postgres=# select * from information_schema.table_privileges;
    复制代码
  • 常用 pgsql 其他命令操作
    1. postgres=# select * from pg_stat_activity;        # 查看服务器状态
    2. postgres=# select version();                                # 查看数据库版本
    3. postgres=# select pg_reload_conf();                        # 重新加载服务器配置文件
    4. postgres=# select pg_is_in_recovery();                # 查看当前库是否为备库
    复制代码
四、常见问题

1、对用户 “postgres” 的对等认证失败



  • 问题说明: 本地登录 pgsql 数据库时,出现对用户的对等认证失败
    1. # 当前操作系统用户为root用户
    2. $ psql -Upostgres -dpostgres
    3. psql: 错误: 连接到套接字"/var/run/postgresql/.s.PGSQL.5432"上的服务器失败:致命错误:  对用户"postgres"的对等认证失败
    4. # 配置文件method=peer表示仅当数据库用户名与操作系统用户名相同时才允许连接
    5. # 即需要登录操作系统的postgres用户才能使用postgres登录pgsql数据库
    复制代码
    登录验证方式:peer、md5、scram-sha-256(1) peer:本地连接认证方法,利用操作体系的用户身份验证来确定是否答应连接。

    • 验证说明:数据库会检查客户端的操作体系用户名和数据库角色名是否匹配,如果匹配则答应连接
    • 适用场景:适用于本地连接,要求操作体系用户和数据库角色一一对应。
    (2) md5:口令的认证方法,客户端连接到数据库时需要提供用户名和暗码。
       

    • 验证说明:暗码以 MD5 加密存储在数据库中,客户端发送经过 MD5 加密的暗码进行验证。
    • 适用场景:适用于需要在客户端连接时提供暗码进行认证的场景,通常用于远程连接。
    (3) scram-sha-256:一种更安全的认证方法。
       

    • 验证说明:它提供了更强的暗码安全性和掩护机制,避免了传统的明文暗码传输和简朴哈希暗码存储的风险。
    • 适用场景:适用于需要更高安全性的场景,保举在支持的情况下利用。

  • 解决办法: 修改配置文件 pg_hba.conf中的全部用户访问配置的 method 方法
    1. # 方案一: 修改method认证方式, 修改为口令认证方式
    2. $ vim /data/pgsql/data/pg_hba.conf
    3. # TYPE  DATABASE            USER   ADDRESS        METHOD
    4. local   all                 all                   md5
    5. host    all                 all    127.0.0.1/32   scram-sha-256
    6. host    all                 all    ::1/128        scram-sha-256
    7. local   replication         all                   md5
    8. host    replication         all    127.0.0.1/32   scram-sha-256
    9. host    replication         all    ::1/128        scram-sha-256
    10. $ systemctl restart postgresql-14.service
    11. $ psql -Upostgres -dpostgres
    12. # 方案二: PGSQL数据库默认仅当数据库用户名与操作系统用户名相同时才允许连接
    13. $ su - postgres
    14. $ psql -Upostgres -dpostgres
    复制代码
2、数据库 no encryption 的 pg_hba.conf 记录



  • 问题说明: 远程登录 pgsql 数据库时,利用 postgres 用户登录出现如下错误:
    1. 致命错误: 没有用于主机 "192.168.8.1", 用户 "postgres", 数据库 "postgres", no encryption 的 pg_hba.conf 记录
    复制代码

  • 解决办法: pgsql 默认情况下,不答应远程连接,需要单独配置
    (1) 修改配置文件postgresql.conf配置数据库远程访问权限
    (2) 修改配置文件 pg_hba.conf,新增配置答应全部 IP 访问登录
    1. # 修改配置文件, 配置数据库远程访问权限
    2. $ vim /data/pgsql/data/postgresql.conf
    3. #listen_addresses = 'localhost'
    4. listen_addresses = '*'
    5. # 修改配置文件, 设置允许所有IP访问数据库
    6. $ vim /data/pgsql/data/pg_hba.conf
    7. ...
    8. host    all             all    0.0.0.0/0      md5
    9. # 重启pgsql服务 (按需选择对应方式)
    10. $ systemctl restart postgresql-14.service
    11. $ su - postgres
    12. $ /data/pgsql/bin/pg_ctl -D /data/pgsql/data/ -l /data/pgsql/logfile stop
    13. $ /data/pgsql/bin/pg_ctl -D /data/pgsql/data/ -l /data/pgsql/logfile start
    复制代码

3、root 用户下未找到 psql 对应命令



  • 问题说明: 在 root 用户下,利用 psql 命令登录数据库时,显示未找到 psql 命令
    1. $ psql -Upostgres -dpostgres
    2. bash: psql: 未找到命令...
    复制代码
  • 解决办法: 为 root 用户添加环境变量,修改/root/.bash_profile文件,追加配置
    1. $ vim /root/.bash_profile
    2. ...
    3. export PGHOME=/data/pgsql/
    4. export PGDATA=$PGHOME/data
    5. export PATH=$PATH:$HOME/bin:$PGHOME/bin
    6. $ source /root/.bash_profile
    7. $ psql -Upostgres -dpostgres
    8. Password for user postgres:
    9. psql (14.11)
    10. Type "help" for help.
    11. postgres=#
    复制代码
  • 补充说明: 若希望全部用户都能利用 psql 命令,修改 **/etc/profile** 文件,追加配置
    1. $ vim /etc/profile
    2. ...
    3. export PGHOME=/data/pgsql/
    4. export PGDATA=$PGHOME/data
    5. export PATH=$PATH:$HOME/bin:$PGHOME/bin
    6. $ source /etc/profile
    7. $ psql -Upostgres -dpostgres
    8. Password for user postgres:
    9. psql (14.11)
    10. Type "help" for help.
    11. postgres=#
    复制代码
4、源码安装下,通过 systemd 管理 pgsql 服务



  • 问题说明: 源码安装 pgsql 后,如何通过 systemd 服务管理器管理 pgsql 服务
    1. # 源码安装下, 通常是通过pg_ctl命令管理pgsql服务
    2. $ su - postgres
    3. $ /data/pgsql/bin/pg_ctl -D /data/pgsql/data/ -l /data/pgsql/logfile stop
    4. $ /data/pgsql/bin/pg_ctl -D /data/pgsql/data/ -l /data/pgsql/logfile start
    5. # 说明:这种启动方式很不方便, 且常需要登录 postgres 用户后, 执行命令很麻烦
    6. # 如何通过 systemd 控制 pgsql 服务?且设置开机自启, 无需登录postgres用户
    复制代码
  • 解决办法: 创建启动文件,设置服务开机自启,利用 systemd 控制 pgsql 服务
    1. # 复制源码包内的启动文件
    2. $ cp /root/postgresql-14.11/contrib/start-scripts/linux /etc/init.d/postgresql
    3. # 修改安装目录和数据目录和日志文件
    4. $ vim /etc/init.d/postgresql
    5. ...
    6. # Installation prefix
    7. prefix=/data/pgsql
    8. # Data directory
    9. PGDATA="/data/pgsql/data"
    10. # Who to run the postmaster as, usually "postgres".
    11. PGUSER=postgres
    12. # Where to keep a log file
    13. PGLOG="$PGDATA/logfile"
    14. ...
    15. # 添加可执行权限
    16. $ chmod +x /etc/init.d/postgresql
    17. # 添加服务到系统服务列表, 设置服务开机自启
    18. $ chkconfig --add postgresql
    19. $ chkconfig postgresql on
    20. # 启动服务, 查看服务状态
    21. $ systemctl start postgresql
    22. $ systemctl status postgresql
    复制代码



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

金歌

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表