postgresql12 使用源码安装(转载)

原文:

https://www.cnblogs.com/wzstudy/p/11793814.html

pg数据库使用参考:

https://www.cnblogs.com/zhangshengdong/p/11975778.html

postgresql-12编译安装

1 准备环境

修改yum源

mkdir -p /etc/yum.bak
mv /etc/yum.repos.d/* /etc/yum.bak/ &&\
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo &&\
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo &&\
yum clean all &&\
yum makecache 

安装基础安装包
yum install -y readline-devel zlib-devel make gcc

创建组和用户

groupadd postgres
useradd -g postgres -G postgres -d /home/postgresql postgres

将安装包放在/opt 路径中并解压
tar xf /opt/postgresql-12.0.tar.gz -C /home/postgresql/postgresql-12.0

2 编译安装

编译

cd /home/postgresql/postgresql-12.0
./configure --prefix=/usr/share/postgresql-12
make && make install

配置环境变量

echo 'export PGHOME=/usr/share/postgresql-12/
export PGDATA=/data/pgsql-12
export PATH=$PGHOME/bin:$PATH
export LANG=en_US.utf8
export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH'>>/etc/profile
source /etc/profile

3 初始化数据

创建数据目录并授权

mkdir -p /data/pgsql-12
chown -R postgres:postgres /data/pgsql-12
chown -R postgres:postgres /usr/share/postgresql-12

初始化

su - postgres
initdb -E utf8 -D $PGDATA

4 配置数据库

切换到root下操作

配置连接方式

echo -e "listen_addresses = '*'\nmax_connections = 100">>/data/pgsql-12/postgresql.conf

配置连接网段
echo 'host all all 0.0.0.0 md5'>>/data/pgsql-12/pg_hba.conf

pg配置文件认证方法

认证方法(authentication method)
trust       无条件地允许联接,这个方法允许任何可以与PostgreSQL 数据库联接的用户以他们期望的任意 PostgreSQL 数据库用户身份进行联接,而不需要口令。
reject      联接无条件拒绝,常用于从一个组中"过滤"某些主机。
md5         要求客户端提供一个 MD5 加密的口令进行认证,这个方法是允许加密口令存储在pg_shadow里的唯一的一个方法。
password    和"md5"一样,但是口令是以明文形式在网络上传递的,我们不应该在不安全的网络上使用这个方式。
gss         使用GSSAPI认证用户,这只适用于 TCP/IP 连接。
sspi        使用SSPI认证用户,这只适用于 Windows 连接。
peer        获取客户端的操作系统的用户名并判断他是否匹配请求的数据库名,这只适用于本地连接。
ldap        使用LDAP服务进行验证。
radius      使用RADIUS服务进行验证。
cert        使用SSL服务进行验证。
pam         使用操作系统提供的可插入的认证模块服务 (Pluggable Authentication Modules)(PAM)来认证。

修改配置启动脚本

启动pg_ctl -D /data/pgsql-12/ -l logfile start
cp /home/postgresql/postgresql-12.0/contrib/start-scripts/linux /etc/init.d/postgresql-12
chmod 777 /etc/init.d/postgresql-12
sed -i '/prefix=/s#prefix=.*#prefix=/usr/share/postgresql-12#' /etc/init.d/postgresql-12
sed -i 's#PGDATA=.*#PGDATA=/data/pgsql-12#' /etc/init.d/postgresql-12

设置开机自启动

chmod 777 /etc/rc.d/rc/local
echo '/etc/init.d/postgresql-12 stop
/etc/init.d/postgresql-12 start'>>/etc/rc.d/rc/local

启动检查

/etc/init.d/postgresql-12 start
ps -ef|grep post

修改密码
alter user postgres with password '123456';

创建数据库

[postgres@db ~]$ createdb zsddb

进入数据库

$ psql zsddb

查看数据库版本和当前时间。

zsddb=# SELECT version();
posted @ 2020-05-19 23:15  BigTree7  阅读(637)  评论(0)    收藏  举报