一、通过 YUM 源安装软件
下面我们以操作系统Centos7.9环境为例,看看如何安装IvorySQL数据库。先介绍最简单的YUM源安装。
1.1 安装 YUM 源
下载地址:https://yum.highgo.ca/ivorysq...
点击图中按钮【DOWNLOAD REPO RPM】下载ivorysql-release-1.0-1.noarch.rpm并传到Centos7.9:
或者在Centos7上使用wget下载:
wget https://yum.highgo.ca/dists/ivorysql-rpms/repo/ivorysql-release-1.0-1.noarch.rpm
安装ivorysql-release-1.0-1.noarch.rpm:
rpm -ivh ivorysql-release-1.0-1.noarch.rpm
安装后,将创建YUM源配置文件:/etc/yum.repos.d/ivorysql.repo。
搜索查看相关安装包:
yum search ivorysql
搜索结果说明见表1
说明:1、2、5、10是RPM包安装需要的,超链接可以单独下载。
1.2 安装 IVORYSQL
要安装数据库服务,需要安装ivorysql1-server。
在用户root会话下执行以下命令:
yum install -y ivorysql1-server
安装清单:
ivorysql1-server.x86_64 0:1.2-1.rhel7
依赖安装:
- ivorysql1.x86_64 0:1.2-1.rhel7 ivorysql1-contrib.x86_64 0:1.2-1.rhel7
- ivorysql1-libs.x86_64 0:1.2-1.rhel7 libicu.x86_64 0:50.2-4.el7_7
- libtirpc.x86_64 0:0.2.4-0.16.el7 libxslt.x86_64 0:1.1.28-6.el7
- python3.x86_64 0:3.6.8-18.el7 python3-libs.x86_64 0:3.6.8-18.el7
- python3-pip.noarch 0:9.0.3-8.el7 python3-setuptools.noarch 0:39.2.0-10.el7
1.3 已安装目录
1.4 RPM安装
顺便说一下RPM安装,需要按这个顺序安装:
yum install -y libicu libxslt python3 --先安装依赖
rpm -ivh ivorysql1-libs-1.2-1.rhel7.x86_64.rpm
rpm -ivh ivorysql1-1.2-1.rhel7.x86_64.rpm
rpm -ivh ivorysql1-contrib-1.2-1.rhel7.x86_64.rpm --nodeps
rpm -ivh ivorysql1-server-1.2-1.rhel7.x86_64.rpm
所以,使用YUM安装还是很方便的。如果没条件,就单独下载按这个顺序安装吧。
下载地址:https://yum.highgo.ca/ivorysq...
点击【BROWSE REPOSITORY-1】找到对应的包下载即可(注意:官网没提供依赖包)。
二、初始化数据库
IvorySQL数据库默认初始化以及启停等操作比较简单。
2.1 默认初始化
我们可以在root用户下,执行以下命令使用系统默认参数来初始化:
/usr/local/ivorysql/ivorysql-1/bin/ivorysql-1-setup initdb
说明:由于没有提供SERVICE_NAME,默认会读ivorysql-1。
启用并启动服务:
systemctl enable --now ivorysql-1.service
ivorysql-1-setup的用法:
ivorysql-1-setup {initdb|check_upgrade|upgrade} [SERVICE_NAME]
说明:该命令的详细用法,执行命令“ivorysql-1-setup --help”查看。
2.2 自定义初始化
假如我们有个需求,要制定数据文件路径(/ivorysql/1.2/data/)和端口号(5866),那我们就可以定制初始化。
根据默认的服务文件“/usr/lib/systemd/system/ivorysql-1.service”在相同目录下复制一个新的“ivorysql-5866.service”:
cp /usr/lib/systemd/system/ivorysql-1.service /usr/lib/systemd/system/ivorysql-5866.service
修改添加以下内容:
Environment=PGDATA=/ivorysql/1.2/data/
Environment=PGPORT=5866
指定SERVICE_NAME为ivorysql-5866来初始化:
/usr/local/ivorysql/ivorysql-1/bin/ivorysql-1-setup initdb ivorysql-5866
启用并启动服务:
systemctl enable --now ivorysql-5866.service
2.3 常用服务操作
IvorSQL数据库服务操作命令:
systemctl start ivorysql-1.service --启动数据库服务
systemctl stop ivorysql-1.service --停止数据库服务
systemctl restart ivorysql-1.service --重启数据库
systemctl status ivorysql-1.service --查看数据库状态
systemctl reload ivorysql-1.service --可以满足部分数据库配置修改完后生效
三、配置数据库服务
我们这里只是简单配置一下,能本地和远程连接就可以了。
3.1 客户端验证
修改 /var/lib/ivorysql/ivorysql-1/data/pg_hba.conf,追加以下内容:
host all all 0.0.0.0/0 scram-sha-256
执行以下命令加载配置:systemctl reload ivorysql-1.service
3.2 基本参数
切换到用户ivorysql:su - ivorysql
通过psql连接数据库:psql
修改监听地址,便于远程连接顺便改一下ivorysql的密码:
alter system set listen_addresses = '*';
alter user ivorysql password '666666';
说明:用户ivorysql是没有密码的,如果不修改密码,可以修改客户端验证方式为trust,来免密登录。
退回root用户,重启服务使设置生效:
systemctl restart ivorysql-1.service
3.3 防火墙
如果开启了防火墙,还需要将端口5333开放:
firewall-cmd --zone=public --add-port=5333/tcp --permanent
firewall-cmd --reload
说明:刚初始化好的ivorysql服务默认端口是5333,如果不开放该端口,外部客户端通过ip连接会失败。
四、客户端连接数据库
连接IvorySQL数据库服务的客户端工具和PostgreSQL的一样。
4.1 psql 连接
操作系统用户ivorysql会话下连接:
[root@Node02 ~]# su - ivorysql
Last login: Wed Apr 27 23:58:57 CST 2022 on pts/0
-bash-4.2$ psql
psql (14.2)
Type "help" for help.
ivorysql=#
4.2 DBeaver 连接
4.3 瀚高 developer 连接
瀚高developer是瀚高自主研发的一个工具,除了可以支持瀚高数据库,还支持PostgreSQL以及IvorySQL数据库。连接配置如下:
如果想使用该工具,请关注公众号加入微信群 “IvorySQL 中国技术交流群” 咨询。
五、卸载
由于我们是通过yum安装的,要卸载建议也使用yum,尽量不要使用rpm,可能会造成卸载不完整。当然了,也可以根据yum安装清单去卸载。
5.1 备份数据
数据目录在/var/lib/ivorysql/ivorysql-1/data下,所以我们将该目录保护好就可以,最好停止服务,做个备份。
5.2 YUM 卸载
首先停止数据库服务:
systemctl stop ivorysql-1.service
先使用“yum history list”确定yum安装的事务ID:
[root@Node02 ~]# yum history list
Loaded plugins: fastestmirror
ID | Login user | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------
5 | root | 2022-04-27 12:38 | Install | 11 <
4 | root | 2022-03-26 16:08 | Install | 35 >
3 | root | 2022-03-26 16:07 | I, U | 19
2 | root | 2022-03-26 16:07 | I, U | 73
1 | System | 2022-03-26 15:59 | Install | 299
history list
可以看到ID为5的是执行安装的事务。执行命令卸载(需将XX替换为“5”):yum history undo XX
也可以使用下面命令来卸载:
yum remove ivorysql-server
但该命令卸载并不彻底,只卸载了2个依赖,还有8个依赖未能卸载。可以根据是否保留这些依赖而决定是否使用这种方式卸载。
六、后记
- 更细化的操作,可以参照postgresql的操作。例如,用initdb直接初始化。
- 大家还可以参考IvorySQL自带文档: /usr/share/doc/ivorysql1-1.2/README.rpm-dist。
- 有任何问题,欢迎大家到 IvorySQL 官方社区仓库:github.com/IvorySQL/IvorySQL 提交 issue。
关于 IvorySQL
IvorySQL 项目是一个具有广泛生态基础和中国特色的 PG 开源衍生项目,是瀚高公司设计研发的一款具备强大 Oracle 兼容能力的开源数据库。具备高兼容性和高可用性,并致力于遵守 open-source ways。
官方网址:ivorysql.org/zh-cn/
社区仓库:github.com/IvorySQL/IvorySQL
IvorySQL 社区欢迎并赞赏所有类型的贡献,期待您的加入!
还有,别忘了在 Github 给我们一个 ⭐奥~