Centos 7源码编译安装Postgresql-9.4
下载地址:https://www.postgresql.org/download/
1、安装gcc
2、安装readline-devel
3、安装zlib-devel
4、上传Postgresql-9.4源码包到服务器
5、解压源码包
(1)#tar -zxvf postgresql-9.4.18.tar.gz
6、创建postgresql安装目录
(1)#mkdir /postgresql
7、创建postgresql数据目录
(1)#mkdir /pgdata
8、检查安装环境
(1)#./configure –prefix=/postgresql
注意:–prefix是指定要安装的目录,这个目录要提前创建出来
9、进行编译
(1)#make
8、进行安装
(2)#make install
9、创建普通用户postgres
(1)#useradd postgres
10、修改postgresql的安装目录与数据目录的所属用户和组
(1)#chown -R postgres:postgres /postgresql/
#chown -R postgres:postgres /pgdata/
11、给postgresql用户设置密码
(1)#passwd postgres
12、设置postgres用户的环境变量
(1)#su - postgres
(2)vim /home/postgres/.bash_profile
(3)注释原有的 #PATH=vim /home/postgres/.bash_profile (3)注释原有的 #PATH=PATH:HOME/.local/bin:HOME/.local/bin:HOME/bin
(4)增加以下内容:PGHOME=/postgresql
export PGHOME
PGDATA=/pgdata
export PGDATA
PATH=$PATH:$HOME/.local/bin:$HOME/bin:$PGHOME/bin
export PATH
注意:最后 export PATH 默认在脚本中存在,不用重复添加。
12、检查环境变量配置
(1)$ source ./.bash_profile
这个命令是使配置的环境变量立即生效
(2)切换到任意目录,执行以下命令:
$which psql
$ psql -V
如果这2条命令,都有执行结果,则表示环境变量配置成功。
13、初始化数据库
$ cd postgresql/bin
(1)$./initdb
注意:此处可以使用 initdb –help初始化相关的帮助信息
如果在初始化的时候,没有指定数据文件目录,则默认使用环境变量中配置的PGDATA目录
(2)初始化成功后,可以看到PGDAT目录下生成了相关的数据文件和配置文件
启动: ./postgres -D /home/pgdata &
14、启动postgresql数据库
(1)mkdir/postgresql/log创建postgresql数据库存放日志的目录/home/pgdata &)mkdir/postgresql/log创建postgresql数据库存放日志的目录(2) pg_ctl start -l /postgresql/log/pg_server.log
postgresql数据库启动命令
15、验证启动是否成功
(1)查看服务器进程
$ps -ef | grep postgres
出现如下表所示的信息,则表示数据库启动成功[postgres@localhost ~]$ ps -ef | grep postgres
postgres 2093 1 0 22:34 pts/0 00:00:00 /postgresql/bin/postgres
postgres 2095 2093 0 22:34 ? 00:00:00 postgres: checkpointer process postgres 2096 2093 0 22:34 ? 00:00:00 postgres: writer process postgres 2097 2093 0 22:34 ? 00:00:00 postgres: wal writer process postgres 2098 2093 0 22:34 ? 00:00:00 postgres: autovacuum launcher process postgres 2099 2093 0 22:34 ? 00:00:00 postgres: stats collector process postgres 2270 2231 0 22:41 pts/1 00:00:00 grep --color=auto postgres12345678
(2)查看postgresql默认端口5432是否处于监听状态$netstat -an | grep 5432[postgres@localhost ~]$ netstat -an | grep 5432tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN tcp6 0 0 :::5432 :::* LISTEN unix 2 [ ACC ] STREAM LISTENING 31009 /tmp/.s.PGSQL.543212345
16、设置postgresql允许远程主机连接
(1)修改/pgdata目录下的pg_hba.conf文件,在IPv4 local connections这行的下面,添加以下参数
含义:host表示安装postgresql的主机,第一个all表示数据库,第二个all表示用户,0.0.0.0/0表示允许连接的IP地址,md5表示连接时的加密方式。host all all 0.0.0.0/0 md5
17、设置postgresql对本机的所有IP进行监听
(1)修改/pgdata目录下的postgresql.conf文件,在connection setting这块,添加以下参数listen_addresses = '*'
18、设置数据库密码
(1)postgersql默认的数据库是postgers,在服务器上输入psql进入数据库命令行客户端
$psql
(2)在客户端里输入\password设置数据库密码
postgres=# \password
(3)在客户端里输入\l即可查看postgersql当前有哪些数据库
19、记住:修改了数据库运行参数后,要重启数据库,使配置生效。
20、在远程服务器上,通过客户端(pgAdmin III或者Navicat Premium)连接postgresql数据库,验证是否可以正常连接。
21、设置postgersql开启自启动(此处使用root用户进行设置)
(1)postgersql开机自启动脚本在源码程序包的“postgresql-9.4.18/contrib/start-scripts/”目录下,脚本名为“linux”。
(2)将此linux文件拷贝纸/etc/init.d目录下,并重命名为postgresql
#cp postgresql-9.4.18/contrib/start-scripts/linux /etc/init.d/postgresql
(3)给postgersql启动脚本赋予执行权限
#chmod u+x /etc/init.d/postgresql
(4)修改/etc/init.d/postgresql文件,需要注意以下几项参数:
注意:prefix:postgersql的安装主目录;PGDATA:postgersql的数据文件目录;PGUSER:启动postgersql数据库的用户名;PGLOG:postgersql运行日志的存放路径。# Installation
prefixprefix=/postgresql
# Data directory
PGDATA="/pgdata"
# Who to run the postmaster as, usually "postgres". (NOT "root")
PGUSER=postgres
# Where to keep a log file
PGLOG="$prefix/log/pg_server.log"
(5)加入开启启动
# chkconfig --add postgresql
(6)查看设置是否成功
# chkconfig --list postgresql
当显示以下信息,则表示已成功设置为开启自启动
postgresql 0:off 1:off 2:on 3:on 4:on 5:on 6:off
(7)重启服务验证