七的博客

PostgreSQL11快速入门(二)-安装与配置

PostgreSQL

PostgreSQL11快速入门(二)-安装与配置

这个章节讲解如何在 Windows 系统以及 Linux 系统上安装 PostgreSQL11 , 以及安装后的基本配置等。

1. 安装 PG

PostgreSQL 支持多种操作系统平台 , 目前支持如下:

  • 类 Linux系统,包括 Debian、Red Hat、Rocky、SUSE、Ubuntu、还有一些其他的 Linux 发行版本。

  • macOS

  • Windows

  • BSD

  • Solaris

1.1 Linux 上安装 PG

大多数 Linux 发行版都提供了 PostgreSQL 的安装包 , 可以使用发行版的包管理器进行安装。

1.1.1 Ubuntu

这里以我本地的 Ubuntu 为例 , Ubuntu 系统通常都是带 PG 的,所以直接使用 APT 就可以直接安装:

sudo apt update
sudo apt install postgresql

安装完成后 , PostgreSQL 服务将自动启动。

通常中央仓库里的版本都会比较老,如果你想体验一些新特性之类的还是选择从其他源进行安装,这时候你也可以使用 PostgreSQL Apt Repository 这种方式进行安装。这是一个由 PG 官方提供的软件仓库,这个仓库仓库允许用户直接通过 APT 安装和管理 PostgreSQL 数据库系统及其相关组件。使用这个仓库的好处大概如下:

  • 获取最新版本:用户可以安装最新版本的 PostgreSQL,包括主要版本和次要更新,这些新版本大概率在默认的 Linux 发行版仓库中尚未提供,等等很久才会更新。
  • 多版本选择:提供多个 PostgreSQL 版本的安装选项,用户可以根据需要选择安装特定版本。

执行如下命令:

sudo apt install -y postgresql-common

sudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh

如果出现如下提示,则为配置成功:

Reading package lists... Done

You can now start installing packages from apt.postgresql.org.

Have a look at https://wiki.postgresql.org/wiki/Apt for more information;
most notably the FAQ at https://wiki.postgresql.org/wiki/Apt/FAQ

然后更新包,再安装 PG:


sudo apt-get update

sudo apt-get -y install postgresql

上面的命令是安装最新的 PG 版本,如果你要安装指定版本的话, 可以使用如 postgresql11 的包形式来代替最新版本的包名 postgresql 。

可以看到,在 Ubuntu 环境下借助于包管理工具,安装 PG 是非常轻松的一件事情。在仓库中, PG 的包包含如下几种,可以后续选择性安装:

  • postgresql-client-1 PG客户端库以及可执行文件
  • postgresql-11 PG服务端,也就是我们说的数据库服务
  • postgresql-doc-11 PG的文档
  • libpq-dev C语言动态库等,这是客户端的,写插件之类的使用。
  • postgresql-server-dev-11 C语言服务端开发的动态库以及头文件,写插件之类的使用。

1.1.2 Centos

作为企业级别开发,使用 Centos 的比例更高。 虽然是 Centos 的安装步骤,但是也实用于 YUM 系列的包管理系统:

  • Red Hat Enterprise Linux
  • AlmaLinux
  • CentOS (7 and 6 only)
  • Oracle Linux

首先通过 YUM 直接安装包:

yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

然后安装客户端以及服务端的依赖:

yum install postgresql11
yum install postgresql11-server

再安装一些其他的依赖,包括开发库等:

yum install postgresql11-libs
yum install postgresql11-contrib
yum install postgresql11-devel

再初始化数据库:

/usr/pgsql-11/bin/postgresql-11-setup initdb

启用 PG 服务:

systemctl enable postgresql-11
systemctl start postgresql-11

这时候 PG 就算是安装完成了,稍微比 Ubuntu 系列步骤多一点点。

1.2 Windows 上安装 PG

在 Windows 上也是可以安装 PG ,不过我个人是不太推荐的,因为真的用着很不舒服。如果你是个人开发环境搭建下倒还好,PG 在 Windows 上只能说是支持,性能以及稳定性什么的都不是太好。

通过下载官方提供的安装包 ( https://www.postgresql.org/download/windows/ ) , 然后双击安装包 , 按照向导提示进行安装。

起始步骤

选择安装的套件,一般我们就默认全选。这里面包括 pgAdmin(PG 的图形管理工具)、Stack Builder(PG 的扩展包管理工具)。

选择安装套件

选择一个安装目录,如果 C盘不够大,可以安装到别的盘。 默认情况下 , PG 会安装在 C:\Program Files\PostgreSQL\11 目录下。

服务安装位置

下一步是设置超级管理员 postgres 的密码,记住别忘了。

设置超级管理员密码

下一步设置端口号,默认是 5432

设置端口号

下一步设置数据编码格式,可以按需切换下

设置数据编码格式

安装总结

等待安装

安装过程

到这一步稍微等几分钟,安装就结束了。安装完成后 , PostgreSQL 服务将自动启动。反正安装比较简单,基本上就是一路下一步下一步即可。

2. PG 的基本配置

安装完成后, 我们可以对 PG 做一些基本的配置 。PG 的主要配置文件是 postgresql.conf, 通常位于数据目录下。

2.1 修改监听地址和端口

默认情况下 , PG 只监听本地回环地址 (127.0.0.1) , 如果需要允许远程连接 , 需要修改 listen_addresses 参数,我第一次安装的时候就是因为这个问题,导致我从局域网内无法连接数据库 :

listen_addresses = '*'

如果是需要对公网暴露端口的话,建议是要修改 PostgreSQL 监听的端口 (默认为 5432) , 通过修改 port 参数来达到目的:

port = 5433

修改配置后,需要重启 PostgreSQL 服务才能生效。

2.2 设置默认字符集和排序规则

可以通过修改 postgresql.conf 中的 lc_messageslc_monetarylc_numericlc_time 等参数来设置默认的字符集和排序规则,例如:

lc_messages = 'zh_CN.UTF-8'
lc_monetary = 'zh_CN.UTF-8'
lc_numeric = 'zh_CN.UTF-8'
lc_time = 'zh_CN.UTF-8'

这将设置默认的字符集为中文,并使用 UTF-8 编码。 不过有一点需要注意的是,PG 的默认字符集称为 UTF-8,也就是说正常情况下,你都不需要去修改这个编码。 这点跟 MySQL 不一样,就算不去设置这个编码,你使用中文的话也不会出现乱码的现象。

2.3 调整内存和磁盘资源

PG 提供了非常多的参数,大概有几百个。如果你数据库的数据量比较大,可以通过调整内存和磁盘资源的使用 , 来优化数据库性能。例如:

  • shared_buffers: 设置共享内存缓冲区的大小 , 一般设置为系统内存的 25%。
  • work_mem:设置内部排序和哈希操作使用的内存大小。
  • effective_cache_size:设置 PostgreSQL 认为可用的磁盘缓存大小,用于查询规划。

这几个参数是最简单好理解的参数,如果你想调整参数可以通过这几个参数开始入手。

3. 启动和停止 PG 服务

在不同操作系统上启动和停止 PostgreSQL 服务的方式略有不同,这里稍微讲一下。

3.1 Linux 上管理 PG 服务

在大多数 Linux 发行版上 , 可以使用 systemctl 命令来管理 PostgreSQL 服务,前提是它是一个系统的服务:

 # 启动服务
sudo systemctl start postgresql
# 停止服务
sudo systemctl stop postgresql  
# 重启服务
sudo systemctl restart postgresql  
# 查看服务状态
sudo systemctl status postgresql  

3.2 Windows 上管理 PG 服务

在 Windows 上, 也可以使用以下命令管理 PostgreSQL 服务:

 # 启动服务
net start postgresql-x64-11
 # 停止服务
net stop postgresql-x64-11 

其中 postgresql-x64-11 是 PostgreSQL 服务的名称,可能根据版本不同而有所差异。

还有一种便捷的方式是通过系统服务,找到该服务直接右键启动即可,可以不用通过命令行来启动。

Windows 服务

4. 参考链接