Linux环境源码编译安装IvorySQL可以在Linux、OSX、Unix和Windows平台上搭建,PostgreSQL的编译安装基本就是相同。本文介绍了在基于Linux的系统上编译源代码的步骤。一、准备工作1.1获取IvorySQL源码Windows或者Linux,只要安装了git,就可以使用git下载:gitclonehttps://github.com/IvorySQL/I...gitclonehttps://gitee。com/IvorySQL/Iv...或者直接去github或者gitee下载:https://github.com/IvorySQL/I...https://gitee.com/IvorySQL/Iv...github会一个有点慢,但是可以用如果不行,改用gitee。在撰写本文时,IvorySQL的最新发布版本是1.2,发布于2022年2月28日。本文使用的源代码版本也是IvorySQL1.2。1.2安装依赖包要从源代码编译IvorySQL,您必须确保系统上有可用的必备包。执行以下命令安装相关包:sudoyuminstall-ybison-develreadline-develzlib-developenssl-develwgetsudoyumgroupinstall-y'开发工具'说明:“开发工具”包括gcc、make、flex、bison。2.编译安装之前得到的源码在IvorySQL文件夹下,接下来我们就进入这个文件夹进行操作。2.1配置Root用户执行以下命令进行配置:./configure注意:由于没有提供--prefix,所以默认安装在/usr/local/pgsql。指定安装路径,如“/usr/local/ivorysql/ivorysql-1.2”:./configure--prefix=/usr/local/ivorysql/ivorysql-1.2注意:如果目录是通过选项“--prefix”,后面的所有“/usr/local/pgsql”都要替换成它指定的目录。更多配置参数可以通过“./configure--help”查看。另请查看PostgreSQL手册。2.2编译安装配置完成后,执行make进行编译:make在安装新编译的服务之前需要使用回归测试进行测试。可以使用以下命令:makecheckmakecheck-world然后安装:makeinstall3.初始化数据库服务。这里我们只是简单的配置一下,你可以本地连接,也可以远程连接。3.1创建操作系统用户userrootsession,新建用户ivorysql:/usr/sbin/groupaddivorysql/usr/sbin/useradd-givorysqlivorysql-c"IvorySQL1.2Server"passwdivorysql3.2创建数据目录next,需要创建Data目录并修改权限。在根会话中执行以下命令。mkdir-p/ivorysql/1.2/datachown-Rivorysql.ivorysql/ivorysql/1.2/注意:数据目录根据这里的RPM安装没有放在“/var/lib/ivorysql/ivorysql-1/data”。3.3环境变量切换到用户ivorysql,修改文件“/home/ivorysql/.bash_profile”,配置环境变量:umask022exportLD_LIBRARY_PATH=/usr/local/pgsql/lib:$LD_LIBRARY_PATHexportPATH=/usr/local/pgsql/bin:$PATHexportPGDATA=/ivorysql/1.2/data使环境变量在当前ivorysql用户session生效:source.bash_profile也可以重新登录或者开启一个新的用户ivorysqlsession。3.4设置防火墙如果启用防火墙,需要打开5333端口:firewall-cmd--zone=public--add-port=5333/tcp--permanentfirewall-cmd--reload说明:默认端口为5333,如果不开放这个端口,外部客户端将无法通过ip连接。3.5初始化在ivorysql用户下,只需执行initdb即可完成初始化:initdb说明:initdb操作与PostgreSQL相同,可根据PG习惯进行初始化。3.6启动数据库使用pg_ctl启动数据库服务:pg_ctlstart查看状态,启动成功:pg_ctlstatuspg_ctl:serverisrunning(PID:29549)/usr/local/pgsql/bin/postgres4.配置服务这里只是一个简单的配置,可以本地4.1Client认证修改/ivorysql/1.2/data/pg_hba.conf,添加如下内容:hostallall0.0.0.0/0trust注意:这里是trust,表示可以无需密码即可登录。执行以下命令加载配置:pg_ctlreload4.2基本参数通过psql连接数据库:psql修改监听地址:altersystemsetlisten_addresses='*';注意:默认监听127.0.0.1,主机外无法连接服务。重启服务使设置生效:pg_ctlrestart4.3Guardianservice创建服务文件:touch/usr/lib/systemd/system/ivorysql.service编辑内容如下:[Unit]Description=IvorySQL1.2databaseserverDocumentation=https://www.ivorysql.orgRequires=network.targetlocal-fs.targetAfter=network.targetlocal-fs.target[Service]Type=forkingUser=ivorysqlGroup=ivorysqlEnvironment=PGDATA=/ivorysql/1.2/data/OOMScoreAdjust=-1000ExecStart=/usr/local/pgsql/bin/pg_ctlstart-D${PGDATA}ExecStop=/usr/local/pgsql/bin/pg_ctlstop-D${PGDATA}ExecReload=/usr/local/pgsql/bin/pg_ctlreload-D${PGDATA}TimeoutSec=0[Install]WantedBy=multi-user.target说明:service的写法有很多种,生产环境使用请慎重,多次重复测试。停止pg_ctl启动的数据库服务,启用systemd服务并启动:systemctlenable--nowivorysql.serviceIvorSQL数据库服务操作命令:systemctlstartivorysql.service--startdatabaseservicesystemctlstopivorysql.service--stopdatabaseservicesystemctlrestartivorysql.service--重启数据库systemctlstatusivorysql.service--查看数据库状态systemctlreloadivorysql.service--满足部分数据库配置修改后生效。5、客户端连接数据库连接IvorySQL数据库服务的客户端工具与PostgreSQL相同。5.1psql连接操作系统用户ivorysql会话连接:[ivorysql@Node02~]$psqlpsql(15devel)Type"help"forhelp.ivorysql=#5.2DBeaver连接DBeaver是一个强大的开源工具,连接配置如下:5.3Hikal开发者连接Hikaldeveloper是Hikal自主研发的一款工具。除了支持Hikal数据库外,还支持PostgreSQL和IvorySQL数据库。连接配置如下:如需使用本工具,请关注公众号,加入微信群“IvorySQL中国技术交流群”进行咨询。6.卸载,编译安装,编译卸载卸载。6.1备份数据数据目录在“/ivorysql/1.2/data”下,我们只需要保护这个目录即可。最好停止数据库服务,做好备份。6.2编译卸载Rootsession切到源代码目录,分别执行以下命令:ivorysql.service/tmp/--服务文件移动到/tmp,也可以用rm-fr/usr/local/pgsql删除--删除残留的安装目录和用户ivorysql以及对应的环境变量,可以根据情况进行清理。其余为数据目录“/ivorysql/1.2/data”,请务必在处理前做好备份。还有安装的依赖包,可以根据情况卸载。7.后记更详细的操作请参考PostgreSQL的相关内容。也可以参考IvorySQL源码自带的文档:/root/IvorySQL/README.md。也可以打开网址链接:https://gitee.com/IvorySQL/Iv...如有任何问题,欢迎到IvorySQL官方社区仓库:github.com/IvorySQL/IvorySQL提交issue。
