centos7下安装postgresql-10.3

centos7下安装postgresql-10.3

Posted by liz on April 18, 2020

centos7下安装pgsql10.3

前言

在centos7上面安装pgsql-10.3,在网上找了很多的文章,试了好久才成功.那就总结下,安装的过程吧,避免下次浪费时间.

下载pgsql-10.3

系统版本centos7

下载pgsql-10.3:https://www.postgresql.org/ftp/source/v10.3/

上传tar包到服务器

$ scp postgresql-10.3.tar.gz root@192.168.56.189:~
The authenticity of host '192.168.56.189 (192.168.56.189)' can't be established.
ECDSA key fingerprint is SHA256:q2lore2LaeBsH4j3jmEVg0VYbfudDDR4LkmF/rt+Zp0.
Are you sure you want to continue connecting (yes/no)? yes
Failed to add the host to the list of known hosts (/home/liz/.ssh/known_hosts).
root@192.168.56.189's password: 
postgresql-10.3.tar.gz                                                     100%   25MB  37.5MB/s   00:00  

安装

解压

# tar -xzvf postgresql-10.3.tar.gz

安装基本的工具

yum install -y vim lrzsz tree wget gcc gcc-c++ readline-devel zlib-devel

编译

进入到刚刚解压的文件夹,执行命令

./configure --prefix=/usr/local/pgsql

后面的/usr/local/pgsql表示的是要编译安装的具体位置,可以自己定义

安装

make && make install

然后等待安装…….. 直到出现PostgreSQL installation complete.表示安装成功了

创建目录 data、log

# mkdir /usr/local/pgsql/data
# mkdir /usr/local/pgsql/log

加入系统环境变量

 vim /etc/profile

在最后写入

PGHOME=/usr/local/pgsql
export PGHOME
PGDATA=/usr/local/pgsql/data
export PGDATA
PATH=$PATH:$HOME/.local/bin:$HOME/bin:$PGHOME/bin

注意:/usr/local/pgsql需要修改为自己的安装目录

使配置文件生效

# source /etc/profile

增加用户 postgres 并赋权

# adduser postgres
# chown -R postgres:root /usr/local/pgsql/

修改密码(在root)

# passwd postgres 
更改用户 postgres 的密码 。
新的 密码:
无效的密码: 密码未通过字典检查 - 过于简单化/系统化
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

初始化数据库

注意:需要在postgres用户下初始化

切换用户 postgres

# su postgres

然后初始化数据库

# /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data/

编辑配置文件

# vim /usr/local/ppgsql/data/postgresql.conf

修改

listen_addresses = '*'
port = 5432

同样修改

# vim /usr/local/pgsql/data/pg_hba.conf

在最后面添加

说明:

TYPE:pg的连接方式,local:本地unix套接字,host:tcp/ip连接
DATABASE:指定数据库
USER:指定数据库用户
ADDRESS:ip地址,可以定义某台主机或某个网段,32代表检查整个ip地址,相当于固定的ip,24代表只检查前三位,最后一 位是0~255之间的任何一个
METHOD:认证方式,常用的有ident,md5,password,trust,reject。
md5是常用的密码认证方式。
password是以明文密码传送给数据库,建议不要在生产环境中使用。
trust是只要知道数据库用户名就能登录,建议不要在生产环境中使用。
reject是拒绝认证。

启动服务

$ pg_ctl start -l /usr/local/pgsql/log/pg_server.log
could not change directory to "/root/postgresql-10.3": 权限不够
waiting for server to start.... done
server started

启动,停止,重启

$ pg_ctl start\stop\restart -D /usr/local/pgsql/log/pg_server.log

需要切换用户 postgres,使用root用户 su postgres切换到postgres用户时,执行上面的启动命令会提示权限不够,使用下面的这个命令,就可以了

# su - postgres

查看版本

# psql -V
psql (PostgreSQL) 10.3

设置开机启动

将pgsql安装包中的linux文件复制到/etc/init.d或者/etc/rc.d

[root@10 postgresql-10.3]# cp contrib/start-scripts/linux /etc/init.d/pgsql

根据安装路径修改pgsql文件中的配置项

## EDIT FROM HERE

# Installation prefix (安装路径)
prefix=/usr/local/pgsql

# Data directory (data路径)
PGDATA="/usr/local/pgsql/data"

修改pgsql文件权限

# chmod +x /etc/init.d/pgsql

开机执行pgsql文件

# chkconfig --add pgsql

关掉防火墙

$ systemctl stop firewalld
$ systemctl disable firewalld