安装指南

1. 概述

IvorySQL安装方式包括以下4种:

本章将详细介绍各个方式的安装、运行及卸载过程,想要更快获得IvorySQL,请参阅快速开始

2. yum源安装

  • 执行yum命令

$ sudo yum install -y https://yum.highgo.ca/dists/ivorysql-rpms/repo/ivorysql-release-3.0-1.noarch.rpm

$ sudo yum install -y ivorysql3 ivorysql3-server ivorysql3-contrib ivorysql3-test

安装完毕将创建yum源配置文件/etc/yum.repos.d/ivorysql.repo。

  • 查看安装结果

yum search ivorysql

查看结果说明如下:

序号

包名

描述

1

ivorysql3.x86_64

IvorySQL客户端程序和库文件

2

ivorysql3-contrib.x86_64

随IvorySQL发布的已贡献的源代码和二进制文件

3

Ivorysql3-devel.x86_64

IvorySQL开发头文件和库

4

Ivorysql3-docs.x86_64

IvorySQL的额外文档

5

ivorysql3-libs.x86_64

所有IvorySQL客户端所需的共享库

6

Ivorysql3-llvmjit.x86_64

对IvorySQL的即时编译支持

7

Ivorysql3-plperl.x86_64

用于IvorySQL的过程语言Perl

8

Ivorysql3-plpython3.x86_64

用于IvorySQL的过程语言Python3

9

Ivorysql3-pltcl.x86_64

用于IvorySQL的过程语言Tcl

10

ivorysql3-server.x86_64

创建和运行IvorySQL服务器所需的程序

11

Ivorysql3-test.x86_64

随IvorySQL发布的测试套件

12

ivorysql-release.noarch

瀚高基础软件股份有限公司的Yum源配置RPM包

3. docker安装

  • 从Docker Hub上获取IvorySQL镜像

$ docker pull ivorysql/ivorysql:3.2-ubi8
  • 运行IvorySQL

$ docker run --name ivorysql -p 5434:5432 -e IVORYSQL_PASSWORD=your_password -d ivorysql/ivorysql:3.2-ubi8

-e参数说明

参数名

是否必填

描述

IVORYSQL_USER

数据库用户,默认 ivorysql

IVORYSQL_PASSWORD

数据库用户密码

IVORYSQL_DB

数据库名称,默认 ivorysql

POSTGRES_HOST_AUTH_METHOD

修改主机身份验证方式,参考值:md5

POSTGRES_INITDB_ARGS

为initdb是添加额外参数,参考值:"--data-checksums"

PGDATA

将数据目录定义到其他路径文件夹下(例如子目录),默认 /var/lib/ivorysql/data

POSTGRES_INITDB_WALDIR

定义IvorySQL transaction文件夹路径,默认在数据目录(PGDATA)的子目录中。

  1. 不推荐将POSTGRES_HOST_AUTH_METHOD参数填写为trust,这样将会使IVORYSQL_PASSWORD设置失效。

  2. 如果POSTGRES_HOST_AUTH_METHOD参数设置为scram-sha-256,同时需将POSTGRES_INITDB_ARGS设置为—​auth-host=scram-sha-256,才会使数据库正确进行初始化。

4. rpm安装

  • 安装依赖

$ sudo yum install -y libicu libxslt python3
$ sudo yum --disablerepo=* localinstall *.rpm
  • 获取rpm包

$ sudo wget https://github.com/IvorySQL/IvorySQL/releases/download/IvorySQL_3.2/ivorysql3-libs-3.2-1.rhel7.x86_64.rpm

$ sudo wget
https://github.com/IvorySQL/IvorySQL/releases/download/IvorySQL_3.2/ivorysql3-2-1.rhel7.x86_64.rpm

$ sudo wget https://github.com/IvorySQL/IvorySQL/releases/download/IvorySQL_3.2/ivorysql3-contrib-3.2-1.rhel7.x86_64.rpm

$ sudo wget
https://github.com/IvorySQL/IvorySQL/releases/download/IvorySQL_3.2/ivorysql3-server-3.2-1.rhel7.x86_64.rpm
  • 安装rpm包

    各rpm包之间有依赖关系,请按照以下顺序安装rpm包:

$ sudo rpm -ivh ivorysql3-libs-3.2-1.rhel7.x86_64.rpm
$ sudo rpm -ivh ivorysql3-3.2-1.rhel7.x86_64.rpm
$ sudo rpm -ivh ivorysql3-server-3.2-1.rhel7.x86_64.rpm --nodeps
$ sudo rpm -ivh ivorysql3-contrib-3.2-1.rhel7.x86_64.rpm

数据库将被安装在/usr/local/ivorysql路径下。

5. 源码安装

  • 安装依赖

$ sudo yum install -y bison-devel readline-devel zlib-devel openssl-devel
$ sudo yum groupinstall -y 'Development Tools'
  • 获取IvorySQL源代码

$ git clone https://github.com/IvorySQL/IvorySQL.git
  • 配置

    进入IvorySQL目录,执行以下命令进行配置,请使用—​prefix指定安装目录:

$ ./configure --prefix=/usr/local/ivorysql/ivorysql-3
  • 编译

    执行以下命令进行编译:

$ make
  • 安装

    执行以下命令安装,数据库将被安装在上述由—​prefix指定的路径下:

$ sudo make install

编译完毕,安装之前可先执行make check或make all-check-world测试刚刚编译的结果

6. 启动数据库

参考yum源安装, rpm安装, 源码安装的用户,需要手动启动数据库

  • 赋权

    执行以下命令为安装用户赋权,示例用户为ivorysql,安装目录为/usr/local/ivorysql:

$ sudo chown -R ivorysql:ivorysql /usr/local/ivorysql
  • 配置环境变量

    将以下配置写入~/.bash_profile文件并使用source命令该文件使环境变量生效:

PATH=/usr/local/ivorysql/ivorysql-3/bin:$PATH
export PATH
LD_LIBRARY_PATH=/usr/local/ivorysql/ivorysql-3/lib
export LD_LIBRARY_PATH
PGDATA=/usr/local/ivorysql/ivorysql-3/data
export PGDATA
$ source ~/.bash_profile
  • 数据库初始化

$ initdb -D /usr/local/ivorysql/ivorysql-3/data
  其中-D参数用来指定数据库的数据目录。更多参数使用方法,请使用initdb --help命令获取。
  • 启动数据库服务

$ pg_ctl -D /usr/local/ivorysql/ivorysql-3/data -l ivory.log start

其中-D参数用来指定数据库的数据目录,如果[配置环境变量] 配置了PGDATA,则该参数可以省略。-l参数用来指定日志目录。更多参数使用方法,请使用pg_ctl --help命令获取。

查看确认数据库启动成功:

$ ps -ef | grep postgres
ivorysql  3214     1  0 20:35 ?        00:00:00 /usr/local/ivorysql/ivorysql-3/bin/postgres -D /usr/local/ivorysql/ivorysql-3/data
ivorysql  3215  3214  0 20:35 ?        00:00:00 postgres: checkpointer
ivorysql  3216  3214  0 20:35 ?        00:00:00 postgres: background writer
ivorysql  3218  3214  0 20:35 ?        00:00:00 postgres: walwriter
ivorysql  3219  3214  0 20:35 ?        00:00:00 postgres: autovacuum launcher
ivorysql  3220  3214  0 20:35 ?        00:00:00 postgres: logical replication launcher
ivorysql  3238  1551  0 20:35 pts/0    00:00:00 grep --color=auto postgres

7. 数据库连接

psql连接数据库:

$ psql -d <database>
psql (16.2)
Type "help" for help.

ivorysql=#
  其中-d参数用来指定想要连接到的数据库名称。IvorySQL默认使用ivorysql数据库,但较低版本的IvorySQL首次使用时需用户先连接postgres数据库,然后自己创建ivorysql数据库。较高版本的IvorySQL则已为用户创建好ivorysql数据库,可以直接连接。

  更多参数使用方法,请使用psql --help命令获取。
Docker运行IvorySQL时,需要添加额外参数,参考:psql -d ivorysql -U ivorysql -h 127.0.0.1 -p 5434

8. 卸载IvorySQL

使用任何一种方法卸载前请先停止数据库服务并做好数据备份。

8.1. yum安装的卸载

执行以下命令依次卸载:

$ sudo yum remove -y ivorysql3 ivorysql3-server ivorysql3-contrib ivorysql3-test
$ sudo rpm -e ivorysql-release-3.0-1.noarch

8.2. docker安装的卸载

执行以下命令,使IvorySQL容器停止运行,并删除IvorySQL容器和镜像:

$ docker stop ivorysql
$ docker rm ivorysql
$ docker rmi ivorysql/ivorysql:3.2-ubi8

8.3. rpm安装的卸载

执行以下命令查询已安装的rpm包,依次卸载并清理文件夹:

$ rpm -qa | grep ivorysql
$ sudo rpm -e ivorysql3-contrib-3.2-1.rhel7.x86_64 --nodeps
$ sudo rpm -e ivorysql3-server-3.2-1.rhel7.x86_64
$ sudo rpm -e ivorysql3-3.2-1.rhel7.x86_64
$ sudo rpm -e ivorysql3-libs-3.2-1.rhel7.x86_64
$ sudo rm -rf /usr/local/ivorysql

8.4. 源码安装的卸载

执行以下命令卸载数据库并清理文件夹:

sudo make uninstall
make clean
sudo rm -rf /usr/local/ivorysql