PostgreSQL 9.5.18 安装
由于项目需要,准备使用PostgreSQL数据库,经过实践,将安装过程记录下来。
环境搭建使用 CentOS7 + PostgreSQL9.5(9.5.18)
下载
在 PostgreSQL 的官方网站找到源码文件目录,地址:https://www.postgresql.org/ftp/source/
在下载列表中,选择版本,如下图:
进入v9.5.18子目录后,可以看到文件列表:
如上图,我们选择 postgresql-9.5.18.tar.gz ,下载完成后,上传到 centos 的指定目录即可。
如果不会上传,请查看 上传方法请查看( FileZilla 将本地文件上传到linux目录)
配置编译安装
1、在编译之前,先安装 c 编译器, gcc
[root@localhost ~]# yum install gcc
2、进入pg 压缩包目录,通过执行命令进行解压:
[root@localhost ~]# tar -zxvf ./postgresql-9.5.18.tar.gz
3、进入解压目录,进行编译,并在编译时指定安装目录:
[root@localhost ~]# cd progresql-9.5.18
[root@localhost ~]# ./configure --prefix=/usr/local/postgresql
4、编译出错,缺少readline 开发包
安装 readline-devel 包:
[root@localhost ~]# yum install redline-devel
5、安装完成后,再此执行编译
[root@localhost ~]# ./configure --prefix=/usr/local/postgresql
编译出错,缺少zlib开发包:
安装zlib开发包:
[root@localhost ~]# yum install zlib-devel
6、安装完成后,再次执行编译
[root@localhost ~]# ./configure --prefix=/usr/local/postgresql
编译成功,成功创建了 config.status 配置文件:
7、编译配置完成,开始执行安装,依次执行:
[root@localhost ~]# make
[root@localhost ~]# make install
看见以下提示,说明安装成功。
8、用户权限与环境变量设置
编译安装成功后,下面要做的就是创建一个普通用户,因为超级用户(root)不能启动 postgresql,所以需要创建一个普通用户来启动数据库。执行命令 :
[root@localhost ~]# useradd postgresusr
接下来需要设置权限,将postgresql 的数据目录全部赋权给用户 postgresqlusr 用户(此处postgres的数据目录指定在/user/local/postgresql/data目录下):
[root@localhost ~]# chown -R postgresusr:postgresusr /usr/local/postgresql
最后再设置环境变量,此处仅设置 新用户 postgresusr 的环境变量,所以先切换到 postgresusr 用户。
[root@localhost ~]# su - postgresusr
然后打开 .bash_profile 文件
[postgresusr@localhost ~]# vi .bash_profile
加入以下内容:
PGHOME=/usr/local/postgresql export PGHOME PGDATA=/usr/local/postgresql/data export PGDATA PATH=$PATH:$HOME/.local/bin:$HOME/bin:$PGHOME/bin export PATH
修改完成,刷新,使其立即生效
[postgresusr@localhost ~]# source ./.bash_profile
接下来验证环境变量是否设置正确,切换任意目录输入
[postgresusr@localhost ~]# which psql
[postgresusr@localhost ~]# psql -V
查看 psql 客户端的路径以及 数据库版本,如图:
9、初始化数据库
由于配置来环境变量,所以此处我们直接执行 initdb 命令即可完成 db 初始化。
[postgresusr@localhost ~]# initdb
如下显示初始化成功:
进入 postgresql 目录,可以看到生成的数据目录 data 以及该目录的相关数据和配置文件:
10 、修改配置文件 ,pg_hba.conf 和 postgresql.conf
pg_hba.conf :访问控制配置(127.0.0.1 修改为信任的客户端ip 网段,使其可以远程访问)
postgresql.conf :主配置文件 (listen_addresses=localhost 改为 * 使其监听整个网络)
进入 /usr/local/postgresql/data 目录,修改文件,将pg_hba.conf 的ip 地址修改为0.0.0.0/0,加密方式修改为md5,就表示需要密码访问。
[postgresusr@localhost data]# vi pg_hba.conf
pg_hba.conf文件修改如下图:
修改postgresql.conf 文件,将listen_address=localhost 修改为 listen_addresses=’*’ , 同时需要开放端口5432,注意要切换为 root 账号才有权限;
[postgresusr@localhost ~]# su - root
[root@localhost ~]# firewall-cmd --zone=public --add-port=5432/tcp --permanent [root@localhost ~]# firewall-cmd --reload
可以通过 命令 来查看已打开的端口列表再次确认一下。
[root@localhost ~]# firewall-cmd --zone=public --list-ports
看到如下提示则说明成功开启端口:
至此,所有配置相关内容已经全部完成,最后就是启动数据库和连接数据库了;
11、启动并连接数据库
在初始化数据库结束时我们已经看到了启动命令
由于之前设置了环境变量,所以已经指定了数据目录PGDATA,-l表示日志文件目录,通常需要指定,所以我们在/usr/local/postgresql根目录下再创建一个log目录用来存放日志文件并赋予可写的权限。
别忘了切换账号:
[root@localhost ~]# su - postgresusr
进入 /usr/local/postgresql目录
[postgresusr@localhost ~]# cd /usr/local/postgresql
创建文件夹
[postgresusr@localhost postgresql]# mkdir log
赋予权限
[postgresusr@localhost postgresql]# chown -R postgresusr:postgresusr /usr/local/postgresql/log/
启动数据库
[postgresusr@localhost postgresql]# pg_ctl start -l /usr/local/postgresql/log/pg_server.log
看到如下提示就说明启动成功了:
启动成功后我们就可以通过postgresql自带的客户端工具psql来进行连接,直接输入psql 打开系统数据库 postgres 看到版本信息则说明连接成功:
[postgresusr@localhost postgresql]# psql postgres
设置 postgresusr 用户的登录密码 :
[postgresusr@localhost postgresql]# psql \password
验证非本地客户端工具连接,我们选择工具 navicat premium ,在主机打开 navicat 与虚拟机中的postgresql 服务器进行连接测试:
测试连接成功。
12、停止数据库可以使用命令 :
pg_ctl stop
至次,用源码编译安装 postgresql 就全部结束。