暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

基于源码包安装PostgreSQL

原创 心在梦在 2023-03-02
593

基于源码包安装PostgreSQL

源码包下载地址:https://www.postgresql.org/download/

图片.png

一、修改系统参数

1.关闭防火墙

[root@postgresql ~]# systemctl status firewalld.service [root@postgresql ~]# systemctl stop firewalld.service [root@postgresql ~]# systemctl disable firewalld.service [root@postgresql ~]# setenforce 0 [root@postgresql ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
复制

2.修改sysctl.conf

[root@postgresql ~]# cat > /etc/sysctl.conf <<"EOF" vm.swappiness=10 vm.zone_reclaim_mode=0 fs.aio-max-nr = 1048576 fs.file-max = 6815744 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048586 kernel.shmmax = 1288490188 kernel.shmall = 314572 kernel.shmmni = 4096 kernel.sem = 50100 64128000 50100 1280 EOF -- 生效 [root@postgresql ~]# sysctl -p
复制

3.修改limits.conf参数

[root@postgresql ~]# cat >> /etc/security/limits.conf <<"EOF" * soft nofile 131072 * hard nofile 131072 * soft nproc 131072 * hard nproc 131072 * soft core unlimited * hard core unlimited * soft memlock 50000000 * hard memlock 50000000 EOF
复制

4.修改用户最大进程数

[root@postgresql ~]# echo "* - nproc unlimited" > /etc/security/limits.d/90-nproc.conf [root@postgresql ~]# rm -f /etc/security/limits.d/*20*
复制

5.配置PAM

[root@postgresql ~]# echo "session required pam_limits.so" >> /etc/pam.d/login
复制

6.关闭THP

-- root用户下,修改文件/etc/rc.local [root@postgresql ~]# cat > /etc/rc.local <<"EOF" if test -f /sys/kernel/mm/transparent_hugepage/enabled; then echo never > /sys/kernel/mm/transparent_hugepage/enabled fi if test -f /sys/kernel/mm/transparent_hugepage/defrag; then echo never > /sys/kernel/mm/transparent_hugepage/defrag fi EOF -- redhat 7以上,需要修改权限 [root@postgresql ~]# chmod +x /etc/rc.d/rc.local
复制

二、基于源码安装PostgreSQL

1.创建用户

[root@postgresql ~]# groupadd -g 60000 pgsql [root@postgresql ~]# useradd -u 60000 -g pgsql pgsql [root@postgresql ~]# echo "pgsql" | passwd --stdin pgsql
复制

2. 创建安装目录

[root@postgresql ~]# mkdir -p /postgresql/{pgdata,archive,scripts,backup,pg13,soft} [root@postgresql ~]# chown -R pgsql:pgsql /postgresql [root@postgresql ~]# chmod -R 775 /postgresql
复制

3.上传并解压安装包

-- 注意安装包的权限 [pgsql@postgresql soft]$ ll -rw-r--r-- 1 pgsql pgsql 27548921 Jan 29 11:14 postgresql-13.2.tar.gz [pgsql@postgresql soft]$ tar -zxvf postgresql-13.2.tar.gz
复制

4.安装依赖包

[root@postgresql ~]# yum install -y cmake make gcc zlib gcc-c++ perl readline readline-devel zlib zlib-devel perl python36 tcl openssl ncurses-devel openldap pam
复制

5.编译安装

[root@postgresql ~]# cd postgresql-13.2 [root@postgresql ~]# ./configure --prefix=/postgresql/pg13 --without-readline [root@postgresql ~]# make -j 8 && make install
复制
  • –without-readline 默认时将自动使用GNU Readline库。它允许psql(PostgreSQL的命令行 SQL 解释器)记住你输入的每一个命令并且允许你使用箭头键来找回和编辑之前的命令。如果你不想用它,那么你必需给configure声明–without-readline选项。

6.配置环境变量

[pgsql@postgresql ~]$ cat >> ~/.bash_profile <<"EOF" export LANG=en_US.UTF-8 export PS1="[\u@\h \W]\$ " export PGPORT=5432 export PGDATA=/postgresql/pgdata export PGHOME=/postgresql/pg13 export LD_LIBRARY_PATH=$PGHOME/lib:/lib64:/usr/lib64:/usr/local/lib64:/lib:/usr/lib:/usr/local/lib:$LD_LIBRARY_PATH export PATH=$PGHOME/bin:$PATH:. export DATE=`date +"%Y%m%d%H%M"` export MANPATH=$PGHOME/share/man:$MANPATH export PGHOST=$PGDATA export PGUSER=postgres export PGDATABASE=postgres EOF [pgsql@postgresql ~]$ source ~/.bash_profile
复制

7.初始化数据库

-- pgsql用户下执行: [pgsql@postgresql ~]$ /postgresql/pg13/bin/initdb -D /postgresql/pgdata -E UTF8 --locale=en_US.utf8 -U postgres The files belonging to this database system will be owned by user "pgsql". This user must also own the server process. The database cluster will be initialized with locale "en_US.utf8". The default text search configuration will be set to "english". Data page checksums are disabled. fixing permissions on existing directory /postgresql/pgdata ... ok creating subdirectories ... ok selecting dynamic shared memory implementation ... posix selecting default max_connections ... 100 selecting default shared_buffers ... 128MB selecting default time zone ... PRC creating configuration files ... ok running bootstrap script ... ok performing post-bootstrap initialization ... ok syncing data to disk ... ok initdb: warning: enabling "trust" authentication for local connections You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb. Success. You can now start the database server using: /postgresql/pg13/bin/pg_ctl -D /postgresql/pgdata -l logfile start
复制

8.修改参数文件

-- 备份原来的参数文件 [pgsql@postgresql ~]$ cp /postgresql/pgdata/postgresql.conf /postgresql/pgdata/postgresql.conf.bak [pgsql@postgresql ~]$ cp /postgresql/pgdata/pg_hba.conf /postgresql/pgdata/pg_hba.conf.bak [pgsql@postgresql ~]$ cat >> /postgresql/pgdata/postgresql.conf <<"EOF" listen_addresses = '*' port=5432 unix_socket_directories='/postgresql/pgdata' logging_collector = on log_directory = 'pg_log' log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' log_truncate_on_rotation = on EOF -- 添加连接规则 [pgsql@postgresql ~]$ cat > /postgresql/pgdata/pg_hba.conf << EOF # TYPE DATABASE USER ADDRESS METHOD local all all trust host all all ::1/128 trust host all all 127.0.0.1/32 trust host all all 0.0.0.0/0 md5 host replication all 0.0.0.0/0 md5 EOF [pgsql@postgresql ~]$
复制

9.启动PG数据库

[pgsql@postgresql ~]$ pg_ctl start waiting for server to start....2023-02-11 11:21:50.745 CST [11052] LOG: redirecting log output to logging collector process 2023-02-11 11:21:50.745 CST [11052] HINT: Future log output will appear in directory "pg_log". done server started -- 检查状态 [pgsql@postgresql ~]$ pg_ctl status pg_ctl: server is running (PID: 11052) /postgresql/pg13/bin/postgres
复制

10.登录PG

[pgsql@postgresql ~]$ psql psql (13.2) Type "help" for help. postgres=# postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+----------+------------+------------+----------------------- postgres | postgres | UTF8 | en_US.utf8 | en_US.utf8 | template0 | postgres | UTF8 | en_US.utf8 | en_US.utf8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | en_US.utf8 | en_US.utf8 | =c/postgres + | | | | | postgres=CTc/postgres (3 rows) postgres=#
复制

11.停止PG

[pgsql@postgresql ~]$ pg_ctl stop waiting for server to shut down.... done server stopped [pgsql@postgresql ~]$ pg_ctl status pg_ctl: no server running [pgsql@postgresql ~]$
复制
最后修改时间:2023-04-06 17:32:32
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

暂无图片
获得了224次点赞
暂无图片
内容获得47次评论
暂无图片
获得了365次收藏
目录
  • 基于源码包安装PostgreSQL
  • 一、修改系统参数
    • 1.关闭防火墙
    • 2.修改sysctl.conf
    • 3.修改limits.conf参数
    • 4.修改用户最大进程数
    • 5.配置PAM
    • 6.关闭THP
  • 二、基于源码安装PostgreSQL
    • 1.创建用户
    • 2. 创建安装目录
    • 3.上传并解压安装包
    • 4.安装依赖包
    • 5.编译安装
    • 6.配置环境变量
    • 7.初始化数据库
    • 8.修改参数文件
    • 9.启动PG数据库
    • 10.登录PG
    • 11.停止PG