PostgreSQL12配置基础

1. 配置开机自启动
如果使用官方yum源安装,会自动配置服务脚本;如果通过源码编译安装,则需要手动配置。
手动配置如下:
在源码包的crontrib目录中有linux、FreeBSD、OSX适用的服务脚本。
cp postgresql-12.3/contrib/start-scripts/linux /etc/init.d/postgres-12
chmod +x /etc/init.d/postgres-12
vim /etc/init.d/postgres-12
修改prefix=/web/pgsql12为安装目录
修改PGDATA="/web/data_5432"为数据目录
加入开机自启动
chkconfig --add postgres-12
chkconfig --list|grep postgres-12
postgres-12 0:关 1:关 2:开 3:开 4:开 5:开 6:关
测试启停
/etc/init.d/postgres-12 start 启动
/etc/init.d/postgres-12 stop 停止
/etc/init.d/postgres-12 status 查看服务状态
/etc/init.d/postgres-12 restart 重启
重启服务器验证数据库是否可以正常启动。
2. 数据库配置
PostgreSQL有两个重要的配置文件:postgresql.conf和pg_hba.conf
pg_hba.conf是它所在数据库实例的”防火墙“。简单来说就是允许哪些主机可以通过什么连接方式和认证方式通过哪个数据库用户连接哪个数据库。
# local DATABASE USER METHOD [OPTIONS]
# host DATABASE USER ADDRESS METHOD [OPTIONS]
# hostssl DATABASE USER ADDRESS METHOD [OPTIONS]
# hostnossl DATABASE USER ADDRESS METHOD [OPTIONS]
连接方式

  • local匹配使用Unix域套接字的连接。如果没有type为local的条目则不允许通过Unix域套接字连接。
  • host匹配使用TCP/IP建立的连接,同时匹配SLL和非SSL连接。默认安装只监听本地回环地址localhost的连接,不允许使用TCP/IP远程连接,启用远程连接需要修改postgres.conf中的listen_addresses参数。
  • hostssl匹配必须是使用SSL的TCP/IP连接。配置hostssl有三个前提条件:1、客户端和服务端都安装OpenSSL;2、编译的时候指定--with-openssl参数;3、在postgresql.conf中配置ssl=on。
  • hostnossl和hostssl相反,它只匹配使用非SSL的TCP/IP连接。
    目标数据库
    DATABASE列标识该行设置对哪个数据库生效。
    目标用户
    USER列标识该行设置对哪个数据库用户生效。
    访问来源
    ADDRESS列标识该行设置对哪个IP地址或IP地址段生效。
    认证方法
    METHOD列标识客户端的认证方法,常见的认证方法有:trust、reject、md5和password等。
  • reject认证方式使用场景:允许某一网段的大多数主机访问数据库,但拒绝这一网段的少数特定主机。
  • md5和password认证方式的区别在于md5认证方式为双重md5加密,password指明文密码,所以不要在非信任网络使用password认证。
    postgresql.conf配置由多个configparameter = value形式的行组成,支持include和include_if_exists指令,并且允许嵌套。在配置项末尾标记了”#(change requires restart)“的配置项是需要重启数据库实例才可以生效的,其他没有标记的配置项只需要reload即可生效。
    修改全局配置的方法有:
  • 修改postgresql.conf配置文件;
  • 使用vim、nano类的文本编辑器或者sed命令编辑它们;
  • 通过ALTER SYSTEM命令修改全局配置。
    通过SQL命令修改的全局配置参数,会自动编辑postgresql.auto.conf文件,在数据库启动时会加载postgresql.auto.conf文件,并用它的配置覆盖postgresql.conf中已有的配置。这个文件不要手动修改。
posted @ 2021-08-18 14:35  霸都运维  阅读(581)  评论(0编辑  收藏  举报