IvorySQL--Linux环境源码编译安装
IvorySQL可以在Linux, OSX, Unix和Windows平台上构建,与PostgreSQL的编译安装基本上是一样的。本文对基于Linux的系统上编译源代码的步骤进行说明。
一、准备工作
1.1 获取 IvorySQL 源码
Windows或Linux,只要安装了git,都可以使用git下载:
git clone https://github.com/IvorySQL/IvorySQL.git
git clone https://gitee.com/IvorySQL/IvorySQL.git
或者直接去github或gitee下载都可以:
https://github.com/IvorySQL/IvorySQL
https://gitee.com/IvorySQL/IvorySQL
github会有点慢,能用则用,不行就改用gitee。
截至本稿,IvorySQL的最新发布版本是1.2,于2022年2月28日发布。

本文使用的源码版本也是IvorySQL 1.2。
1.2 安装依赖包
要从源代码编译IvorySQL,必须确保系统上有可用的先决条件包。 执行以下命令安装相关包:
sudo yum install -y bison-devel readline-devel zlib-devel openssl-devel wget
sudo yum groupinstall -y 'Development Tools'
说明:“Development Tools”包含了gcc,make,flex,bison。
二、编译安装
前面通过获取的源码在文件夹IvorySQL里,接下来我们就进入这个文件夹进行操作。
2.1 配置
Root用户执行以下命令进行配置:
./configure
说明:由于没有提供--prefix,默认安装在/usr/local/pgsql。
指定安装路径,如“/usr/local/ivorysql/ivorysql-1.2”:
./configure --prefix=/usr/local/ivorysql/ivorysql-1.2
注意:我们要记住指定的目录,因为系统查不出已经编译安装的程序在哪。
更多configure参数通过“./configure --help”查看。还可以查看PostgreSQL手册。
2.2 编译安装
配置完成后,执行make进行编译:
make
要在安装新编译的服务之前使用回归测试测试一下,以下命令均可:
make check
make check-world
然后安装:
make install
三、初始化数据库服务
我们这里只是简单配置一下,能本地和远程连接就可以了。
3.1 创建操作系统用户
用户root会话下,新建用户 ivorysql:
/usr/sbin/groupadd ivorysql
/usr/sbin/useradd -g ivorysql ivorysql -c "IvorySQL1.2 Server"
passwd ivorysql
3.2 创建数据目录
接下来需要创建数据目录并修改权限。在root会话下执行以下命令。
mkdir -p /ivorysql/1.2/data
chown -R ivorysql.ivorysql /ivorysql/1.2/
注意:这里没按RPM安装将数据目录放置到“/var/lib/ivorysql/ivorysql-1/data”。
3.3 环境变量
切换到用户ivorysql,修改文件“/home/ ivorysql /.bash_profile”,配置环境变量:
umask 022
export LD_LIBRARY_PATH=/usr/local/pgsql/lib:$LD_LIBRARY_PATH
export PATH=/usr/local/pgsql/bin:$PATH
export PGDATA=/ivorysql/1.2/data
使环境变量在当前ivorysql用户会话中生效:
source .bash_profile
也可以重新登录或开启一个新的用户ivorysql的会话。
3.4 设置防火墙
如果开启了防火墙,还需要将端口5333开放:
firewall-cmd --zone=public --add-port=5333/tcp --permanent
firewall-cmd --reload
说明:默认端口是5333,如果不开放该端口,外部客户端通过ip连接会失败。
3.5 初始化
在用户ivorysql下,简单执行initdb就可以完成初始化:
initdb
说明:initdb操作与PostgreSQL一样,可以按照PG的习惯去初始化。
3.6 启动数据库
使用pg_ctl启动数据库服务:
pg_ctl start
查看状态,启动成功:
pg_ctl status
pg_ctl: server is running (PID: 29549)
/usr/local/pgsql/bin/postgres
