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 startstop
estart -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