PostgreSQL_安装部署

打印 上一主题 下一主题

主题 948|帖子 948|积分 2844

一、Windows系统下安装

1.下载安装包

登录PostgreSQL: Downloads官网:


选择14.12版本,点击下载:

2.安装PostgrSQL14.12

双击exe安装包步伐,准备安装:

选择安装路径:

选择想安装的工具:

选择数据存储路径:

设置超管密钥:

设置端口,一般是5432:

Locale建议利用C的本地化规则:

确认配置信息:

开始实行安装:

3.调整PostgreSQL配置

3.1pg_hba.conf 客户端身份验证规则配置

在pg_hba.conf文件中添加以下配置:
  1. # postgres for localhost:
  2. local   all             postgres                                scram-sha-256
  3. host    all             postgres        127.0.0.1/32            scram-sha-256
  4. host    all             postgres        0.0.0.0/0               reject
  5. # remote connections:
  6. host    all             all             0.0.0.0/0               scram-sha-256
复制代码
3.2postgresql.conf 服务参数配置

在postgresql.conf中主要调整以下配置:
  1. listen_addresses = '*' # 监听地址
  2. port = 5432 # 端?号
  3. max_connections = 1000 # 最?连接数
  4. superuser_reserved_connections = 10 # 预留给超管?户的连接数
  5. password_encryption = scram-sha-256 # 密码加密?式
  6. shared_buffers = 1024MB # 允许使?的内存,通常设置为物理内存的25%
  7. timezone = 'Asia/Shanghai' # 时区,根据实际项?地理位置修改
  8. log_timezone = 'Asia/Shanghai' # ?志时区,根据实际项?地理位置修改
复制代码
4.重启PostgreSQL服务


二、Linux系统下安装(以CentOS7为例)

1.安装依赖环境

  1. yum install -y perl-devel  perl-ExtUtils-Embed systemd-devel readline-devel uuid-devel zlib-devel clang-devel llvm-devel perlExtUtils-Embed tcl-devel libicu-devel libxml2-devel libxslt-devel python-devel python3-devel gcc gcc-c++ llvm3.9-devel openssl-devel lz4-devel pam-devel openldap-devel cmake bison flex  
复制代码
2.规划存储路径

  1. mkdir /opt/pgsql/source -p # pgsql源码包存放路径
  2. mkdir /opt/pgsql/extensions -p # pgsql插件存放路径
  3. mkdir -p /mnt/data/pgsql/pgsql5432 # pgsql数据?录
  4. mkdir -p /mnt/data/pgsql/backup/{backup-db,backup-tmp} # pgsql备份?录
复制代码
3.PG环境配置

3.1创建用户和用户组、主目次

  1. useradd -d /home/postgres -s /bin/bash -U -m postgres
复制代码
3.2配置用户环境变量

  1. cat >> /home/postgres/.bash_profile << EOF
  2. # PostgreSQL
  3. export PGHOME=/usr/local/pgsql
  4. export PATH=$PGHOME/bin:$PATH
  5. export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH
  6. export PGDATA=/mnt/data/pgsql/pgsql5432
  7. export PGHOST=/tmp
  8. export PGPORT=5432
  9. EOF
复制代码
3.3授权相关目次

  1. chmod 700 /mnt/data/pgsql/pgsql5432
  2. chmod -R 700 /mnt/data/pgsql/backup
  3. chown postgres:postgres -R /opt/pgsql  /mnt/data/pgsql
复制代码
4.下载二进制安装包

  1. wget -P /opt/pgsql/source https://ftp.postgresql.org/pub/source/v14.8/postgresql-14.8.tar.gz --no-check-certificate
复制代码
5.包完备性校验

  1. md5sum postgresql-14.8.tar.gz
  2. # MD5校验值:05a8078ee17d4f00779138767b802065
  3. sha256sum postgresql-14.8.tar.gz
  4. # SHA256校验值:a3c32ff8168832d9637eb870f6e98f98506797fe5942555d70cd77558949a844
复制代码
操作如下图所示:

6.解压与编译安装

  1. tar xf postgresql-14.8.tar.gz   #解压
  2. cd postgresql-14.8              #进到主目录下
  3. #下面进行编译与安装
  4. ./configure --with-systemd --with-uuid=ossp --with-perl --with-python --with-tcl --with-icu --with-openssl --with-libxml --with-libxslt --with-lz4 --prefix=/opt/pgsql/pgsql-14.8  
  5. make -j 4 world && make -j 4 install-world
  6. ln -s /opt/pgsql/pgsql-14.8 /usr/local/pgsql    //创建软链接
复制代码


7.安装查抄与验证

  1. su - postgres     #进到postgres用户下
  2. cd /opt/pgsql/source/postgresql-14.8/     #进入pg主目录
  3. make check # 安装成功后,测试?下编译的功能是否正常,全部正常会在末尾输出ALL tests passed
复制代码

8.初始化数据库

建议:字符编码使UTF8,本地化使C,认证式使scram-sha-256
  1. initdb -E UTF8 --locale=C -U postgres -W -A scram-sha-256 --data-checksums
复制代码


9.初始化配置文件

  1. cd /mnt/data/pgsql/pgsql5432/
  2. mv postgresql.conf postgresql.conf.bak
  3. mv pg_hba.conf pg_hba.conf.bak
  4. touch postgresql.conf  pg_hba.conf
复制代码
创建两个同名文件,配置如下:
pg_hba.conf:
  1. # TYPE  DATABASE        USER            ADDRESS                 METHOD# "local" is for Unix domain socket connections onlylocal   all             all                                     scram-sha-256# IPv4 local connections:host    all             all             127.0.0.1/32            scram-sha-256# IPv6 local connections:host    all             all             ::1/128                 scram-sha-256# replication connections:local   replication     all                                     scram-sha-256host    replication     all             127.0.0.1/32            scram-sha-256host    replication     all             ::1/128                 scram-sha-256# postgres for localhost:
  2. local   all             postgres                                scram-sha-256
  3. host    all             postgres        127.0.0.1/32            scram-sha-256
  4. host    all             postgres        0.0.0.0/0               reject
  5. # remote connections:
  6. host    all             all             0.0.0.0/0               scram-sha-256
复制代码
postgresql.conf:
  1. listen_addresses = '*'
  2. port = 5432
  3. max_connections = 1000
  4. superuser_reserved_connections = 10
  5. unix_socket_directories = '/tmp'
  6. tcp_keepalives_idle = 180
  7. tcp_keepalives_interval = 10
  8. tcp_keepalives_count = 3
  9. password_encryption = scram-sha-256
  10. shared_buffers = 1024MB
  11. temp_buffers = 8MB
  12. max_prepared_transactions = 50
  13. work_mem = 4MB
  14. maintenance_work_mem = 64MB
  15. dynamic_shared_memory_type = posix
  16. max_worker_processes = 8
  17. wal_level = logical
  18. fsync = on
  19. synchronous_commit = remote_write
  20. wal_sync_method = fsync
  21. full_page_writes = on
  22. max_wal_size = 5GB
  23. min_wal_size = 80MB
  24. max_wal_senders = 30
  25. max_replication_slots = 10
  26. hot_standby = on    //允许只读
  27. max_logical_replication_workers = 4
  28. log_destination = 'stderr'     //表示 PostgreSQL 将日志信息输出到标准错误输出流
  29. logging_collector = on
  30. log_directory = 'pg_log'
  31. log_filename = 'postgresql-%a.log'
  32. log_file_mode = 0600
  33. log_rotation_age = 1d
  34. log_truncate_on_rotation = on
  35. log_checkpoints = on
  36. log_timezone = 'Asia/Shanghai'
  37. autovacuum = on    //自动回收
  38. idle_session_timeout = 1200000
  39. datestyle = 'iso, mdy'
  40. timezone = 'Asia/Shanghai'
  41. lc_messages = 'C'
  42. lc_monetary = 'C'
  43. lc_numeric = 'C'
  44. lc_time = 'C'
  45. default_text_search_config = 'pg_catalog.english'
复制代码
10.配置systemd服务托管

  1. cat > /usr/lib/systemd/system/pgsql.service << EOF
  2. [Unit]
  3. Description=PostgreSQL database server 14
  4. After=network-online.target
  5. Wants=network-online.target
  6. [Install]
  7. WantedBy=multi-user.target
  8. [Service]
  9. Type=forking
  10. User=postgres
  11. Group=postgres
  12. Environment=PGPORT=5432
  13. Environment=PGDATA=/mnt/data/pgsql/pgsql5432
  14. ExecStart=/usr/local/pgsql/bin/pg_ctl start -D ${PGDATA} -s -w -t 300
  15. ExecStop=/usr/local/pgsql/bin/pg_ctl stop -D ${PGDATA} -s -m fast
  16. ExecReload=/usr/local/pgsql/bin/pg_ctl reload -D ${PGDATA} -s
  17. TimeoutSec=300
  18. Restart=on-failure
  19. RestartSec=3
  20. OOMScoreAdjust=-1000
  21. LimitNOFILE=65535
  22. LimitNPROC=65535
  23. EOF
复制代码
11.启动pgsql.service

  1. systemctl daemon-reload
  2. systemctl enable pgsql
  3. systemctl start pgsql
  4. systemctl status pgsql
复制代码
12.连接postgresql数据库测试

  1. su - postgres       #进入postgres用户下
  2. psql -h 127.0.0.1 -p 5432 postgres       #连接数据库
复制代码
这里实行 pqsql 和 psql -h 127.0.0.1 -p 5432 postgres 下令是同样的效果

假如想修改postgres用户的密码,可以利用以下语句进行修改:
  1. postgres=# alter user postgres with password '123';
  2. ALTER ROLE
  3. postgres=# quit
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

忿忿的泥巴坨

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表