openHalo 为 PostgreSQL 提供了与 MySQL 编写的应用程序兼容的能力,同时相比 MySQL,它还具备更优异的性能!
从老旧的 MySQL 数据库迁移可能既费时又消耗资源。在迁移数据库时,您可以使用 HMT(由 HaloLab 开源迁移工具,同样由 HaloLab 开发
openHalo 支持 MySQL 的 SQL 语法,并兼容相同的通信协议,因此,原本为 MySQL 编写的应用程序只需进行少量代码修改即可与 openHalo 配合使用。因此,将运行在 MySQL 5.7 或更新版本上的应用程序修改并迁移至 openHalo 的所需工作量大大减少,从而实现了更快速、低风险且成本更低的迁移。
优势
减少迁移时间和风险
openHalo 支持 MySQL 常用的方言和语义,减少了应用程序中与数据库调用相关的代码更改量。因此,需要重写的应用程序代码量最小化,降低了新应用程序错误的风险。
获得更好的性能
使用 openHalo,您无需额外努力和费用即可获得更好的性能!尤其是对于复杂的 SQL 语句!
自由迁移
openHalo 支持 MySQL 常用的查询工具、命令和驱动程序。因此,您可以继续使用您熟悉的工具进行开发。
工作原理
openHalo 支持 MySQL 常用的 SQL 语法和通信协议。您可以将 openHalo 作为一个 MySQL 使用,让老旧应用程序能够与 openHalo 通信,而无需进行大量代码重写,同时提供比 MySQL 更好的性能!
快速教程
从源代码安装
./configure --prefix=/usr/local/openhalo --enable-debug --with-uuid=ossp --with-icu CFLAGS=-O2 make && make install cd contrib make && make install
groupadd -g 5432 halo useradd -u 5432 -g halo halo
文件目录授权
chown halo -R /usr/local/openhalo
chmod 755 -R /usr/local/openhalo
使用 halo 账户初始化数据库
sudo -u /usr/local/openhalo/pg_ctl init -D /usr/local/openhalo/data
在data/postgresql.conf文件中,主要修改下面几个地方
database_compat_mode = 'mysql' #启动 mysql 模式
mysql.listener_on = true # 允许 mysql 连接
mysql.port = 3306 # mysql 端口号开启 MYSQL 模式
进入 PostgreSQL 数据库
sudo -u halo /usr/local/openhalo/psql -p 5432 -h 127.0.0.1进入后,重要环节:打开 mysql 扩展CREATE EXTENSION aux_mysql CASCADE;MySQL 模式可以使用
mysql -P 3306 -h 127.0.0.1关于开机启动项:创建服务文件:/etc/systemd/system/openhalo.service
[Unit]
Description=OpenHalo database server
After=network.target
[Service]
Type=forking
User=halo
Group=halo
ExecStart=/usr/local/openhalo/bin/pg_ctl start -D /usr/local/openhalo/data
ExecStop=/usr/local/openhalo/bin/pg_ctl stop -D /usr/local/openhalo/data
[Install]
WantedBy=multi-user.target
执行systemctl daemon-reload加载配置
通过systemctl enable openhalo 启用自启动
openHalo 官方网站:https://www.openhalo.org