热门标签 | 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


推荐阅读
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 掌握远程执行Linux脚本和命令的技巧
    本文将详细介绍如何利用Python的Paramiko库实现远程执行Linux脚本和命令,帮助读者快速掌握这一实用技能。通过具体的示例和详尽的解释,让初学者也能轻松上手。 ... [详细]
  • 深入解析Android自定义View面试题
    本文探讨了Android Launcher开发中自定义View的重要性,并通过一道经典的面试题,帮助开发者更好地理解自定义View的实现细节。文章不仅涵盖了基础知识,还提供了实际操作建议。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 本文基于刘洪波老师的《英文词根词缀精讲》,深入探讨了多个重要词根词缀的起源及其相关词汇,帮助读者更好地理解和记忆英语单词。 ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • 本文深入探讨了 Java 中的 Serializable 接口,解释了其实现机制、用途及注意事项,帮助开发者更好地理解和使用序列化功能。 ... [详细]
  • 将Web服务部署到Tomcat
    本文介绍了如何在JDeveloper 12c中创建一个Java项目,并将其打包为Web服务,然后部署到Tomcat服务器。内容涵盖从项目创建、编写Web服务代码、配置相关XML文件到最终的本地部署和验证。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
  • RecyclerView初步学习(一)
    RecyclerView初步学习(一)ReCyclerView提供了一种插件式的编程模式,除了提供ViewHolder缓存模式,还可以自定义动画,分割符,布局样式,相比于传统的ListVi ... [详细]
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • 本文详细介绍了 Apache Jena 库中的 Txn.executeWrite 方法,通过多个实际代码示例展示了其在不同场景下的应用,帮助开发者更好地理解和使用该方法。 ... [详细]
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社区 版权所有