环境准备
操作系统: Centos 7.3 (cat /etc/redhat-release)
postgresql版本: 11.4
需要系统中含有gcc,make,zlib, zib-devel,readline,readline-devel没有的话需要先安装
可以使用yum或者rpm包的方式安装
源码下载
postgresql的官方网站:https://www.postgresql.org/
源码包下载:https://www.postgresql.org/ftp/source/
编译安装
解压
tar -zxvf postgresql-11.4.tar.gz
在/data上创建安装目录postgresql
mkdir postgresql
生成makefile
进入解压的目录
cd /opt/software/postgresql-11.4
执行
./configure --prefix=/data/postgresql
编译安装
make && make install
成功
安装完成后的目录结构如下
安装工具集
cd /opt/software/postgresql-11.4/contrib make && make install
创建用户
groupadd postgres useradd -g postgres postgres passwd postgres
为了安全考虑,postgresql不允许使用root用户操作数据库,我们在系统中为了使用postgresql添加一个用户postgres。
也可以是其他用户名, 初始化数据库时,就以这个用户作为数据库的超级用户
修改目录的用户为postgres
chown -R postgres:postgres /data/postgresql
修改环境变量
切换到postgres用户
su postgres
vim /home/postgres/.bash_profile
export PGHOME=/data/postgresql export PGDATA=/data/postgresql/data export PATH=$PGHOME/bin:$PATH export MANPATH=$PGHOME/share/man:$MANPATH export LANG=en_US.utf8 export DATE=`date +"%Y-%m-%d %H:%M:%S"` export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH alias rm='rm -i' alias ll='ls -lh'
使环境变量生效
source /home/postgres/.bash_profile
初始化数据库
使用的也是postgres用户
initdb -D /data/postgresql/data/
启动数据库
pg_ctl -D /data/postgresql/data/ -l logfile start
查看端口是否被使用
netstat -nltp|grep 5432
有看到的话就说明启动成功
修改配置文件
postgresql.conf:配置PostgreSQL数据库服务器的相应的参数
pg_hba.conf:配置对数据库的访问权限
vim /data/postgresql/data/postgresql.conf
vim /data/postgresql/data/ pg_hba.conf
最后添加一行
设置开机自启动
修改/opt/software/postgresql-11.4/contrib/start-scripts下的linux文件,这个是一个自带的启动脚本
改成对应的路径
将linux文件拷贝到/etc/init.d/目录下,并命名为postgresql,然后添加到自启动服务里面
chmod a+x linux su root cp linux /etc/init.d/postgresql cd /etc/init.d chkconfig --add postgresql chkconfig
切换postgres用户,就可以使用下面的命令启动或者关闭了,需要输入postgres的登陆密码。
启动服务:#service postgresql start
停止服务:#service postgresql stop
重启服务:#service postgresql restart
设置密码
postgres用户
进入到/data/postgresql/bin目录,执行如下命令可以设置postgresql数据库的密码。
账号默认是初始化数据库的用户名。
使用navicat连接