鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

(可选)初始化并启动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为例进行说明,出于安全考虑,请在生产环境中使用更复杂安全的密码。
    1. 登录数据库。
      /usr/local/pgsql-13.2/bin/psql -U postgres
    2. 设置数据库postgres用户的密码。
      alter user postgres with password '123456';
    3. 退出数据库。
      \q
  4. 配置远程管理。

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

    1. 修改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”保存并退出编辑。
    2. 修改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配置文件中的其余参数的说明:

      3. 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
    3. 重启数据库,以使上述配置生效。
      /usr/local/pgsql-13.2/bin/pg_ctl -D /data/pg-13.2/data -l logfile restart