- 下载源代码:wget https://ftp.postgresql.org/pub/source/v9.6.12/postgresql-9.6.12.tar.gz
- 解压源码:tar -zxvf postgresql-9.6.12.tar.gz
- 创建编译目录:mkdir -p postgresql-9.6.12/build
- 安装依赖包:yum install -y gcc perl bison perl-ExtUtils-Embed flex readline-devel zlib zlib-devel openssl-devel libxml2-devel openldap-devel libxslt-devel pam-devel uuid* tcl tcl-devel python-devel bzip2 unzip
- 配置编译安装环境和选项:../configure --prefix=/usr/local/postgres --with-perl --with-python --with-ldap --with-openssl --with-ossp-uuid --with-libxml --with-tcl --with-pam --with-libxslt --enable-thread-safety
- 编译源码:make
- 安装数据库: make install
- 编译安装扩展插件
- 切换目录: cd contrib
- 编译源码: make
- 安装扩展插件: make install
- 切换目录 cd ../../
- 下载scws源码: wget http://www.xunsearch.com/scws/down/scws-1.2.2.tar.bz2
- 解压源码: tar -xvf scws-1.2.2.tar.bz2
- 切换当前目录:cd scws-1.2.2
- 配置编译安装环境和选项:./configure --prefix=/usr/local/postgres/scws
- 编译源码: make
- 安装动态库: make install
- 下载zhparser源码: wget https://github.com/amutu/zhparser/archive/master.zip
- 解压源码:unzip master.zip
- 切换目录: cd zhparser-master/
- 配置PostgreSQL环境变量:export PATH=$PATH:/usr/local/postgres/bin
- 编译安装:SCWS_HOME=/usr/local/postgres/scws make && make install
- 创建PostgreSQL用户和组: useradd postgres
- 创建PostgreSQL数据目录: mkdir -p /data/psql
- 切换目录的所有者: chown -R postgres:postgres /data/psql
- 为postgres用户准备环境变量:vi /home/postgres/.bashrc
- 添加如下内容:
export PG_HOME=/usr/local/postgres
export PATH=$PATH:$PG_HOME/bin
export LD_LIBRARY_PATH=$PG_HOME/lib
- 切换postgres用户:su - postgres
- 初始化数据库:pg_ctl init -D /data/psql/
- 用户访问授权: vi /data/psql/pg_hba.conf,
- 添加一下内容:host all dbcenter 0.0.0.0/0 md5,允许dbcenter用户在任何网络中访问所有数据库
- 第一个为host表示允许远程访问;第二个为数据库名称;第三个为用户名;第四个为允许的IP地址;第五个为认证方式
- 启动数据库服务:pg_ctl start -D /data/psql
- 进入数据库交互界面:psql
- 创建用户dbcenter: create user dbcenter superuser nocreatedb login encrypted password '12345678';
- 该用户是超级用户,但是不能创建数据库实例
- 创建数据库实例: create database demo encoding=utf8 owner=dbcenter;
- 创建用户dbcenter: create user dbcenter superuser nocreatedb login encrypted password '12345678';
创建PostgreSQL自启动脚本 vi /usr/lib/systemd/system/postgres.service
[Unit]
Description=PostgreSQL database server
After=network.target
[Service]
Type=forking
User=postgres
Group=postgres
ExecStart=/usr/local/postgres/bin/pg_ctl start -D /data/psql
ExecStop=/usr/local/postgres/bin/pg_ctl stop -D /data/psql -M fast
ExecReload=/usr/local/postgres/bin/pg_ctl reload -D /data/psql
[Install]
WantedBy=multi-user.target
将启动脚本添加到开机启动清单中
systemctl daemon-reload
将PostgreSQL数据库设为开机启动
systemctl enable postgresql.service
检查PostgreSQL是否开机启动
systemctl is-enabled postgresql.service