PostgreSQL11快速入门(二)-安装与配置
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_messages
、lc_monetary
、lc_numeric
、lc_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 服务的名称,可能根据版本不同而有所差异。
还有一种便捷的方式是通过系统服务,找到该服务直接右键启动即可,可以不用通过命令行来启动。