---
title: （可选）初始化并启动PostgreSQL
description: "以postgres用户身份初始化并启动PostgreSQL数据库，并设置用户密码以及配置远程管理。如果已经存在PostgreSQL主从部署的环境，请跳过本章节。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdbs/ecosystemEnable/PostgreSQL/kunpengdbs_ptgl_btps_0006.html
sourcePath: /source/zh/kunpengdbs/ecosystemEnable/PostgreSQL/kunpengdbs_ptgl_btps_0006.html
indexId: e91ca9c93178052e07cf1b4b8fa238b15813bb2b8c283bd8c06e927132640dcd79
---
# （可选）初始化并启动PostgreSQL

以postgres用户身份初始化并启动PostgreSQL数据库，并设置用户密码以及配置远程管理。如果已经存在PostgreSQL主从部署的环境，请跳过本章节。

1. 切换到postgres用户。

```
su - postgres
```


2. 在postgres用户下，初始化数据库并启动数据库。

```
rm -rf /data/pg-13.2/data/*
/usr/local/pgsql-13.2/bin/initdb -D /data/pg-13.2/data
/usr/local/pgsql-13.2/bin/pg_ctl -D /data/pg-13.2/data -l logfile start
```


3. 设置数据库postgres用户的密码。本文以密码123456为例进行说明，出于安全考虑，请在生产环境中使用更复杂安全的密码。

  a. 登录数据库。

```
/usr/local/pgsql-13.2/bin/psql -U postgres
```


  b. 设置数据库postgres用户的密码。

```
alter user postgres with password '123456';
```


  c. 退出数据库。

```
\q
```


4. 配置远程管理。
为了允许所有用户从任何IP地址通过密码验证远程管理数据库，需要修改pg_hba.conf和postgresql.conf文件。

  a. 修改pg_hba.conf配置文件，以允许所有用户对所有数据库的远程管理。

    1. 打开文件。

```
vi /data/pg-13.2/data/pg_hba.conf
```


    2. 按“i”进入编辑模式，在文件最后新增如下内容。

```
host    all             all             0.0.0.0/0               password
```


    3. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。
  b. 修改postgresql.conf配置文件，以启用远程连接和复制等功能。

    1. 打开postgresql.conf配置文件。

```
vi /data/pg-13.2/data/postgresql.conf
```


    2. 按“i”进入编辑模式，在文件最后添加如下配置参数。

```
listen_addresses = '*' #该参数用于指定PostgreSQL服务侦听的IP地址。设置为*表示服务器侦听所有可用的IP地址，包括IPv4和IPv6地址，允许从任何连接到服务器的客户端IP地址接收连接。
port = 5432 #该参数用于指定PostgreSQL服务侦听的端口号。默认情况下，PostgreSQL使用5432端口。
wal_level = replica
wal_keep_size = 1000
max_slot_wal_keep_size = 10
wal_sender_timeout = 120s
max_wal_senders = 10
min_wal_size = 800MB
archive_mode = on
archive_command = 'cp %p /data/pg-13.2/archive/%f'
hot_standby = on
max_standby_streaming_delay = 30s
wal_receiver_status_interval = 10s
hot_standby_feedback = on
max_connections = 200 #该参数用于设置数据库服务器允许的最大并发连接数。
wal_log_hints = on
```

请从PostgreSQL官网搜索并查看PostgreSQL配置文件中的其余参数的说明：

      -         PostgreSQL 13配置文件的参数说明(https://www.postgresql.org/docs/13/runtime-config.html)

      -         PostgreSQL 15配置文件的参数说明(https://www.postgresql.org/docs/15/runtime-config.html)

    3. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。
  c. 重启数据库，以使上述配置生效。

```
/usr/local/pgsql-13.2/bin/pg_ctl -D /data/pg-13.2/data -l logfile restart
```
