背景
搭建数据库测试环境(任何时候都需要按照官网的标准进行)
环境介绍
宿主机为centos 8 Linux 4.18.0
docker-ce 19.03.12 在centos容器中安装pgsql13.1
网络为 192.168.68.20 数据目录为映射/data/data
#在centos镜像中编译安装
docker run -d -it --privileged -v /data/ddata/pgsql20:/data
-v /data/ddata/dfile/:/dfile -p1020:22 --network mydockernet --ip 192.168.68.20
--name pgsql20 centos /usr/sbin/init
编译安装
1.gunzip postgresql-11.2.tar.gz
tar xf postgresql-11.2.tar
2.依赖安装
yum -y install gcc zlib-devel readline readline-devel zlib zlib-devel make gcc perl
./configure [/usr/local/pgsql默认程序路径]
make
make install
adduser postgres
passwd postgres
chown -R postgres:postgres /usr/local/pgsql/ /data/data
3.环境变量:/etc/profile
PATH=/usr/local/pgsql/bin:$PATH
export PATH
4.初始化:
su - postgres
/usr/local/pgsql/bin/initdb --no-locale -D /data/data -E utf8 -U postgres -W
/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data >logfile 2>&1 &
【为/usr/local/pgsql/下添加了logfile目录】
5.更改配置文件:/data/data/postgresql.conf 默认端口5432 lsof -i:5432
log_destination = 'csvlog' #用户访问日志格式
listen_addresses = '0.0.0.0'
logging_collector = on #启用用户访问日志收集器
log_directory = '/data/logs'
6.配置/data/data/pg_hba.conf #连接白名单
host all all 192.168.68.0/24 trust
host all all 192.168.66.0/24 trust
7.配置Postgresql环境变量
在/etc/profile文件中增加下面内容
PGDATA=/data/data
PGHOST=127.0.0.1
PGDATABASE=postgres
PGUSER=postgres
PGPORT=5432
##PGPASSWORD="123456"
export PGDATA PGHOST PGDATABASE PGUSER PGPORT PATH PGPASSWORD
source /etc/profile
which psql
8.下面配置postgresql的动态库到搜索路径中:
vim /etc/ld.so.conf.d/pgsql.conf
/usr/local/pgsql/lib
搜索路径生效
[root@nfs postgresql-9.6]# ldconfig
[root@cacti jumpserver]# ldconfig -p | grep libpq
libpqwalreceiver.so (libc6,x86-64) => /usr/local/pgsql9.6/lib/libpqwalreceiver.so
libpq.so.5 (libc6,x86-64) => /usr/local/pgsql9.6/lib/libpq.so.5
libpq.so (libc6,x86-64) => /usr/local/pgsql9.6/lib/libpq.so
9.启动:pg_ctl start 默认已启动
或是pg_ctl -D /data/data -l logfile start
连接:psql -U postgres
补充
ps -ef|grep pg
postgres 11413 1 0 08:22 ? 00:00:00 /usr/local/pgsql/bin/postgres
-D /data/data
自建模板commit出一个images:(为了快速创建另一个pg数据库)
docker commit pgsql20 pgsql13.1
docker run -d -it --privileged -v /data/ddata/pgsql21:/data
-v /data/ddata/dfile/:/dfile
-p1021:22 --network mydockernet --ip 192.168.68.21 --name pgsql21 pgsql13.1
/usr/sbin/init docker
#进入容器修改配置文件/data/data/pg_hba.conf 和 /data/data/postgresql.conf
exec -it pgsql21 bash
本文说明,主要技术内容来自互联网技术大佬的分享,还有一些自我的加工(仅仅起到注释说明的作用)。如有相关疑问,请留言,将确认之后,执行侵权必删