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

PostgreSQL Linux源码安装

原创 IT邦德 2021-08-15
707
作者:IT邦德

中国DBA联盟(ACDU)成员,目前从事DBA及程序编程(Web\java\Python)工作,主要服务于生产制造
现拥有 Oracle 11g  OCP/OCM、Mysql、Oceanbase(OBCA)认证
分布式TBase\TDSQL数据库、国产达梦数据库以及红帽子认证
从业8年DBA工作,在数据库领域有丰富的经验
B站主播Oracle、Mysql、PG实战课程,请搜索:jeames007

微信:jem_db
QQ交流:168797397
复制

简介:

本次部署为在Docker环境下部署源码安装,在生产上是一个较为稳定的部署方式,整理如下
更多内容关注B站:
https://www.bilibili.com/video/BV1PK4y1V7Wf/
复制

image.png

1. 容器部署


#先拉邦老师制作好的镜像
docker pull techerwang/mysql:jeamespg_1.0 

docker run -d --name pghost02 -h pghost02 \
-p 35432:5432 \
-v /sys/fs/cgroup:/sys/fs/cgroup \
--privileged=true techerwang/mysql:jeamespg_1.0 \
/usr/sbin/init

docker update --restart=always pghost02
[root@pghost02 ~]# cd /soft/
复制

2.源码包下载

官网下载安装包
https://www.postgresql.org/ftp/source/

[root@jeames ~]# cd /soft
[root@jeames soft]# ll -h
[root@jeames soft]# docker cp postgresql-13.4.tar.gz pghost02:/soft
复制

3.创建用户

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

image.png

4.创建目录

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

image.png

5.编译

[root@pghost02 ~]$ su - pgsql
[pgsql@pghost02 ~]$ cd /soft
[pgsql@pghost02 soft]$ cp postgresql-13.2.tar.gz /postgresql/soft/
[pgsql@pghost02 soft]$ cd /postgresql/soft
[pgsql@pghost02 soft]$ pwd
/postgresql/soft
[pgsql@pghost02 soft]$ ll
复制

image.png

[pgsql@pghost02 soft]$ tar zxvf postgresql-13.4.tar.gz
[pgsql@pghost02 soft]$ cd postgresql-13.4
[pgsql@pghost02 postgresql-13.4]$ du -sh .

##编译
[pgsql@pghost02 postgresql-13.4]$ ./configure --prefix=/postgresql/pg13 --without-readline
复制

image.png

##安装
[pgsql@pghost02  postgresql-13.4]$ make -j 4 && make install
复制

image.png

6 配置环境变量

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
#alias psql='rlwrap psql' 
EOF

[pgsql@pghost02 ~]$ source  ~/.bash_profile
复制
#初始化
[root@pghost02 /]# su - pgsql
[pgsql@pghost02 ~]$ /postgresql/pg13/bin/initdb -D /postgresql/pgdata -E UTF8 --locale=en_US.utf8 -U postgres
复制

image.png

两个参数文件:
/postgresql/pgdata/postgresql.conf
/postgresql/pgdata/pg_hba.conf

[pgsql@pghost02 ~]$ more /postgresql/pgdata/postgresql.conf | grep list


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-%a.log'
log_truncate_on_rotation = on   #日志循环
EOF

cat > /postgresql/pgdata/pg_hba.conf << EOF
# TYPE  DATABASE    USER    ADDRESS       METHOD
local     all       all                    trust
host      all       all   127.0.0.1/32     trust
host      all       all    0.0.0.0/0      password
host   replication  all    0.0.0.0/0      password
local  replication  all                    trust
EOF
复制

7.启动

[root@pghost02 /]# su - pgsql
[pgsql@pghost02 ~]$ pg_ctl start
[pgsql@pghost02 ~]$ pg_ctl status
[pgsql@pghost02 ~]$ pg_ctl stop
[pgsql@pghost02 ~]$ netstat -anp | grep 5433
复制

image.png

[pgsql@pghost02 ~]$ cd /postgresql/pgdata/pg_log    --日志文件

复制

image.png

查看pg的进程号
image.png

#远程登陆方式
psql -U postgres -h 192.168.1.54 -d postgres -p 35432
复制

本文如有错误或不完善的地方请大家多多指正,
留言微信:jem_db 或 QQ:2243967774 皆可,您的批评指正是我写作的最大动力!
大家多多点赞,转发,谢谢

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论