PostgreSQL 的安装与配置

安装

brew 安装后 brew services start postgresql@17 可以启动服务,使用 brew services list 查看服务状态。 也可以通过设定环境变量 export PGDATA=/opt/homebrew/var/postgresql@17 后使用命令 initdb 创建数据库簇,然后 pg_ctl start -D $PGDATA 启动。 停止命令为 pg_ctl stop -D $PGDATA [-m SHOWDOWN-MODE],其中 -m 是服务器停止方法:

PostgreSQL 数据库中的 immediate 关机模式相当于 Oracle 数据库中的 abort 关机模式,而 Oracle 中的 immediate 关机模式实际上对应的是 PostgreSQL 中的 fast 模式。

配置

PostgreSQL 数据库的配置主要通过修改数据目录下的 postgresql.conf 和 pg_hba.conf 文件来实现的。

pg_hda.conf 文件是一个很白名单的访问配置文件,可以控制允许哪些 IP 地址的机器访问数据库。 默认数据库无法接受远程连接,因此默认情况下 pg_hba.conf 中没有对应的配置项,可以在文件中加入下面命令

PLAINTEXT
host    all    all    0/0    md5
Click to expand and view more

该命令允许任何用户远程连接到本地数据库,连接时需要提供密码。

IP 和 端口

postgresql.conf 可以修改监听的 IP 和端口,找到以下内容:

PLAINTEXT
# listen_address = 'localhost'
# port = 5432
Click to expand and view more

其中,“listen_address” 默认监听 “localhost”,如果要接受远程登陆,修改为 “*” 表示在本地所有地址上监听。 “port” 表示监听的数据库端口,默认 “5432”。

PLAINTEXT
listen_address = '*'
port = 5432
Click to expand and view more

修改这两个参数要重启数据库才能生效。

日志

日志收集一般需要打开(默认开启),日志目录一般使用默认值即可

PLAINTEXT
logging_collection = on
log_directory = 'pg_log'
Click to expand and view more

日志切换和是否覆盖可以使用如下几种不同的方案:

  1. 每天生成一个新的日志文件

    PLAINTEXT
    log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
    log_truncate_on_rotation = off
    log_rotation_age = 1d
    log_rotation_size  = 0
    Click to expand and view more
  2. 每当日志写满一定的大小,切换一个日志

    PLAINTEXT
    log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
    log_truncate_on_rotation = off
    log_rotation_age = 0
    log_rotation_size = 10M
    Click to expand and view more
  3. 只保留最近 7 天的日志,进行循环覆盖(默认)

    PLAINTEXT
    log_filename = 'postgresql-%a.log'
    log_truncate_on_rotation = on
    log_rotation_age = id
    log_rotation_size = 0
    Click to expand and view more

内存参数

其他功能

Start searching

Enter keywords to search articles

↑↓
ESC
⌘K Shortcut