热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux环境下PostgreSQL的安装、配置及日常管理

本文详细介绍了在Linux环境下安装、配置PostgreSQL数据库的过程,包括环境准备、安装步骤、配置数据库访问以及日常服务管理等方面的内容。适合初学者和有一定经验的数据库管理员参考。

1. PostgreSQL安装与配置

1.1 环境准备

操作系统: Oracle Linux Server 6.5

IP地址: 192.168.6.177

版本信息: PostgreSQL 9.6.3

安装方式: RPM包

1.2 下载安装包

访问PostgreSQL官方网站,根据您的操作系统类型和版本选择合适的安装包。所需下载的安装包如下:

postgresql96-9.6.3-4PGDG.rhel6.x86_64.rpm

postgresql96-contrib-9.6.3-4PGDG.rhel6.x86_64.rpm

postgresql96-libs-9.6.3-4PGDG.rhel6.x86_64.rpm

postgresql96-server-9.6.3-4PGDG.rhel6.x86_64.rpm

1.3 安装PostgreSQL

将下载的安装包放置在同一目录下,然后执行安装命令:

[root@DB-Server-Node1 ~]# rpm -ivh postgresql96-*.rpm

1.4 安装文件夹说明

RPM包安装过程中,PostgreSQL会在系统中创建以下文件夹:

/var/lib/pgsql: 存放PostgreSQL数据库的默认数据文件

/usr/pgsql-9.6: 存放PostgreSQL的命令、依赖库及相关文档

1.5 将PostgreSQL命令加入系统路径

编辑/etc/profile文件,将PostgreSQL的命令路径添加到系统环境变量中,并使配置立即生效:

[root@DB-Server-Node1 ~]# vi /etc/profile

... ...

# 在文件末尾添加以下内容

export PATH=$PATH:/usr/pgsql-9.6/bin

# 保存并退出后,执行以下命令使配置生效

[root@DB-Server-Node1 ~]# source /etc/profile

# 测试PostgreSQL命令

[root@DB-Server-Node1 share]# postgres --version

1.6 初始化数据库

使用默认的数据文件夹初始化数据库:

[root@DB-Server-Node1 bin]# service postgresql-9.6 initdb

[root@DB-Server-Node1 bin]# /etc/init.d/postgresql-9.6 initdb

对于CentOS 7/RedHat 7/Oracle Linux 7,使用以下命令初始化数据库:

[root@DB-Server-Node1 bin]# /usr/pgsql-9.6/bin/postgresql96-setup initdb

使用自定义数据存储目录时,首先创建并设置权限,然后初始化数据库:

# 创建数据存储目录

mkdir -p /data/postgres

# 设置目录权限

chown -R postgres:postgres /data/postgres

# 初始化数据库

su -l postgres -c "/usr/pgsql-9.6/bin/initdb --no-locale -U postgres -E utf8 -D /data/postgres -W"

1.7 添加PostgreSQL环境变量(可选)

编辑/etc/profile文件,添加PostgreSQL的相关环境变量:

[root@DB-Server-Node1 ~]# vi /etc/profile

... ...

# 添加PostgreSQL环境变量

PGDATA=/data/postgres

PGHOST=127.0.0.1

PGDATABASE=postgres

PGUSER=postgres

PGPORT=5432

export PGDATA PGHOST PGDATABASE PGUSER PGPORT

1.8 配置数据库访问

编辑postgres.conf文件,配置数据库的基本参数:

listen_addresses='localhost'

port=5432

max_cOnnections=100

superuser_reserved_cOnnections=3

authentication_timeout=60s

ssl=false

password_encryption=true

shared_buffers=32MB

max_prepared_transactiOns=5

temp_buffers=8MB

work_mem=1MB

maintenance_work_mem=16MB

fsync=on

synchronous_commit=on

full_page_writes=on

wal_buffers=64KB

wal_writer_delay=200ms

commit_delay=0ms

commit_siblings=5

编辑pg_hba.conf文件,配置数据库的访问控制:

[root@DB-Server-Node1 ~]# vi pg_hba.conf

... ...

# 本地Unix域套接字连接

local all all trust

# IPv4本地连接

host all all 127.0.0.1/32 trust

host all all 192.168.6.0/24 trust

# IPv6本地连接

host all all ::1/128 trust

1.9 启动数据库并测试

启动PostgreSQL数据库服务:

[root@DB-Server-Node1 init.d]# service postgresql-9.6 start

使用psql命令测试数据库连接:

[root@DB-Server-Node1 9.6]# psql -h localhost -U postgres -d postgres -W

1.10 修改用户密码

使用psql命令登录数据库,修改默认用户的密码:

[root@DB-Server-Node1 9.6]# su - postgres

-bash-4.2$ psql -h localhost -U postgres -d postgres -w

postgres=# alter user postgres with password '新密码';

1.11 设置服务开机自启动

chkconfig postgresql-9.6 on

2. PostgreSQL日常服务管理

启动数据库: pg_ctl start -D /data/postgres

重启数据库: pg_ctl restart -D /data/postgres

停止数据库: pg_ctl stop -D /data/postgres

强制重启: pg_ctl restart -D /data/postgres -m f

强制停止: pg_ctl stop -D /data/postgres -m f

重新加载配置: pg_ctl reload -D /data/postgres

查看服务状态: pg_ctl status -D /data/postgres

连接数据库: psql -h 127.0.0.1 -U postgres -p 5432 -d postgres -W


推荐阅读
  • 本文详细介绍了MySQL 5.5及以上版本中事务管理的全过程,包括事务的启动、设置、锁机制以及解锁方法,旨在为开发者提供一个清晰、全面的操作指南,避免因网络资料分散而导致的学习障碍。 ... [详细]
  • 开发笔记:Mongodb副本集集群搭建 ... [详细]
  • Python与MySQL交互指南:从基础到进阶
    本文深入探讨了Python与MySQL数据库的集成方法,包括数据库连接、数据表创建、索引管理、数据操作以及如何防止SQL注入等关键内容。适合初学者及希望提升数据库操作技能的开发者。 ... [详细]
  • 解决MySQL Administrator 登录失败问题
    本文提供了解决在使用MySQL Administrator时遇到的登录错误的方法,包括启动变量和服务部分禁用的问题。同时,文章还介绍了通过安全配置模式来解决问题的具体步骤。 ... [详细]
  • PHP网站部署指南:从零开始搭建PHP网站
    本文提供了详细的步骤指导,帮助开发者在不同环境下成功部署PHP网站,包括在IIS和Apache服务器上的具体操作。 ... [详细]
  • MHA 架构详解与实践
    MHA(Master High Availability)是一种高效的主从切换解决方案,确保了数据的一致性和系统的高可用性。本文将详细介绍MHA的功能、主从切换流程以及配置步骤,并探讨其优缺点。 ... [详细]
  • 本文探讨了缓存系统中的两个关键问题——缓存穿透与缓存失效时的雪崩效应,以及这些问题的解决方案。此外,文章还介绍了数据处理、数据库拆分策略、缓存优化、拆分策略、应用架构演进及通信协议的选择等内容。 ... [详细]
  • Pikachu平台SQL注入漏洞详解
    本文详细介绍了SQL注入漏洞的基本原理、攻击流程、不同类型注入点的识别与利用方法,以及基于union联合查询、报错信息、布尔盲注、时间盲注等多种技术手段的信息获取方式。同时,探讨了如何通过SQL注入获取操作系统权限,以及HTTP Header注入和宽字节注入等高级技巧。最后,提供了使用SQLMap自动化工具进行漏洞测试的方法和常见的SQL注入防御措施。 ... [详细]
  • 深入解析线程池的工作原理与实际应用
    本文详细探讨了线程池的核心概念、工作原理及其在实际开发中的应用,包括不同类型的线程池创建方式及其适用场景。 ... [详细]
  • Python安全实践:Web安全与SQL注入防御
    本文旨在介绍Web安全的基础知识,特别是如何使用Python和相关工具来识别和防止SQL注入攻击。通过实际案例分析,帮助读者理解SQL注入的危害,并掌握有效的防御策略。 ... [详细]
  • 本文详细介绍了如何在阿里云 ECS 实例上安装和配置 MySQL 数据库,包括安装 MySQL 的 Yum 仓库、解决常见安装问题、启动服务以及设置初始用户权限等步骤。 ... [详细]
  • 本文介绍了一种有效的方法来监控Web服务器(如Nginx)和数据库服务器(如MySQL)的服务状态,通过端口、进程和服务响应等多种方式确保服务的正常运行。 ... [详细]
  • 本文详细介绍如何在Spring Boot项目中集成和使用JPA,涵盖JPA的基本概念、Spring Data JPA的功能以及具体的操作步骤,帮助开发者快速掌握这一强大的持久化技术。 ... [详细]
  • 本文详细介绍了MySQL表分区的概念、类型及其在实际应用中的实施方法,特别是针对Zabbix数据库的优化策略。 ... [详细]
  • 成为一名高效的Java架构师不仅需要掌握高级Java编程技巧,还需深入理解JVM的工作原理及其优化方法。此外,对池技术(包括对象池、连接池和线程池)的应用、多线程处理、集合对象的内部机制、以及常用的数据结构和算法的精通也是必不可少的。同时,熟悉Linux操作系统、TCP/IP协议栈、HTTP协议等基础知识,对于构建高效稳定的系统同样重要。 ... [详细]
author-avatar
元元木樨_669
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有