postgresqllinux9.6.0
2018 年 01 月 31 日 10 时 53 分 13 秒
编译以及安装
源码编译
程序安装
数据库的启动和停止
启动数据库
关闭数据库
数据库开机自动启动
远程连接配置
数据库的基本操作
安装过程中的报错
编译以及安装
源码编译
1) 官网下载源码安装包 (本次源码安装包名: PostgreSQL-9.6.0.tar.gz).
2) 为了安装的管理, Linux 机器一般需要先 创建 三个目录: 编译目录, 数据库安装目录, 数据初始化目录.
3) 这儿使用的目录如下:
编译目录 | 数据库安装目录 | 数据存储目录 |
---|---|---|
/usr/local/src/postgresql | /usr/local/pgsql9.6.0/ | /data/pgdata |
4) 将源码安装包上传到编译目录, 并使用 tar 命令解压.
tar -xvf PostgreSQL-9.6.0.tar.gz
5) 安装 PostgreSQL 依赖包
- # 如果安装报错, 再次运行一次
- yum install -y perl-ExtUtils-Embed readline-devel zlib-devel pam-devel libxml2-devel libxslt-devel openldap-devel python-devel gcc-c++ openssl-devel cmake
注: redhat7.4 配置 yum 源步骤见: 传送门 https://www.cnblogs.com/h-zhang/p/11068991.html
6) 对源码进行编译, 源码编译使用 root 用户即可
- # 进入解压目录
- # 对于 9.X 版本的默认线程安全, 所以不用添加线程安全的选项了
- # 第一步就是使用 configure 命令
- ./configure --prefix=/usr/local/pgsql9.6.0 --with-perl --with-python
- # 第二步使用 make,make 的版本需要在 3.8 之上, 版本查看: make --version
- make
- # 第三步使用 make install 安装, 需要 root 权限才能对 / usr/local 有写权限
- make install
程序安装
1) 安装之后: 建立软连接, 方便后期升级维护
ln -sf /usr/local/pgsql9.6.0/ /usr/local/pgsql
2) 设置可执行文件与共享库的路径:
如果是将语句加在. profile 或. bash_profile 文件中, 界面登录是不会生效的. 所以可以加在 / etc/profile 文件中
- # 将 PostgreSQL 自带命令路径添加到 PATH
- export PATH=/usr/local/pgsql/bin:$PATH
- # 设置共享库的路径
- export LD_LIBRARY_PATH=/usr/local/pgsql/lib:$LD_LIBRARY_PATH
- # 设置数据存储的路径
- export PGDATA=/data/pgdata/
- # 创建用户
- useradd -U -p 123456 postgres
- # 如果这个目录不属于 postgres 用户和组, 可以使用 chown 修改
- chown postgres:postgres /data/pgdata/
- # 将所有的参数设置完成之后, 将变量导出使其生效
- source /etc/profile
3) 将依赖的环境变量导出之后, 进行数据库初始化到数据存储目录之中
- # 切换为 postgres 用户初始化数据库
- su - postgres
- # 数据库的初始化, 命令之后不指定 PGDATA, 默认使用环境变量 PGDATA 中存储的路径
- initdb
4) 如果需要安装 contrib 下的工具可以到之前解压的主目录下的 contrib 目录运行下面的命令
- make;
- sudo make install;
数据库的启动和停止
启动数据库
- # 切换为 postgres 用户后启动
- su - postgres
- pg_ctl start -D $PGDATA
- #PGDATA 是前面导出的数据库的数据目录, 也可以直接在命令后面加目录启动
关闭数据库
- # 切换为 postgres 用户后停止
- su - postgres
- pg_ctl stop -D $PGDATA [ -m shutdown-mode ]
-m 为停止方法:(3 个参数)
smart: 等待所有连接中止之后
fast: 快速关闭, 断开客户端连接, 让已有事务回滚
immediate: 立即退出, 下次进入需要修复
数据库开机自动启动
1) 开机自动启动, 需要将解压路径下的 contrib/start-scripts/Linux 文件添加执行权限, 并且修改该文件中的 PGDATA 参数为自己的实际的路径, prefix 参数修改为前面数据库的安装目录, 前面将数据库的安装目录添加了软连接, 这儿修改为软连接的目录就可以了 (强烈推荐使用前面软连接的做法, 方便管理)
2) 之后将 Linux 文件复制到 / etc/init.d / 下重命名为 PostgreSQL
- # 添加为开机前启动
- chkconfig --add PostgreSQL
- # 对服务的管理命令
- service PostgreSQL {
- start|stop|restart|reload|status
- }
远程连接配置
需要配置两个文件, 位于数据库数据目录 ()
- PostgreSQL.conf
- pg_hba.conf
PostgreSQL.conf
pg_hba.conf
数据库的基本操作
-- 创建用户
create user hzhang with password 'hzhang';
-- 赋权限
alter user hzhang with createdb;
-- 修改用户密码
alter user hzhang with password 'hzhang';
-- 创建一个数据库, 数据库拥有者 hzhang
create database moon owner hzhang;
安装过程中的报错
基本都是安装依赖包的时候没有安装造成的
报错 1:configure: error: no acceptable C compiler found in $PATH
解决方法: 安装 gcc 套件
yum install gcc
报错 2:configure: error: readline library not found
解决方法: 安装 readline-devel
- yum list | grep readline
- yum install readline-devel.x86_64
报错 3:configure: error: zlib library not found
解决方法: 安装 zlib-devel
- yum list | grep zlib
- yum install zlib-devel.x86_64
报错 4:configure: error: header file <Python.h> is required for Python
解决方法
yum install python python-devel
来源: http://www.bubuko.com/infodetail-3101240.html