openHalo
OpenHalo is an open-source PostgreSQL kernel that provides MySQL wire-protocol compatibility.
openHalo is based on PostgreSQL 14.18 and provides wire-level compatibility with MySQL 5.7.32-log / 8.0.
Pigsty delivers it through pg_mode: mysql and the openhalo package alias.
Pigsty supports OpenHalo deployment on all supported Linux platforms.
- RPM build spec: github.com/pgsty/rpm/rpmbuild/specs/openhalodb.spec
- DEB build spec: github.com/pgsty/deb/debbuild/openhalodb
Quick Start
Use Pigsty’s standard installation flow with the mysql template.
Cluster Config
The OpenHalo extension aux_mysql provides functions and types for MySQL compatibility.
Enable it in the postgres database for full compatibility behavior.
- aux_mysql 1.5: MySQL Supplementary Extension
/usr/halo-14/share/postgresql/extension/aux_mysql.control$libdir/mysm,mysm.so
Usage
MySQL connections use the postgres database.
A MySQL database maps to a PostgreSQL schema.
Thus, use mysql selects the mysql schema in the postgres database.
Use the PostgreSQL usernames and passwords for MySQL access.
Client Access
OpenHalo listens on port 3306 for MySQL wire protocol clients.
Pigsty’s conf/mysql installs a MySQL client by default.
OpenHalo upstream currently reports that Navicat works normally on this port. IntelliJ DataGrip may fail.
Compatibility Parameters
Pigsty sets database_compat_mode to mysql by default.
To adjust compatibility behavior, use settings such as:
Patch Notes
Pigsty packages the OpenHalo kernel from HaloTech-Co-Ltd/openHalo with these adjustments:
- Restore default database name from
halo0roottopostgres - Remove
1.0.prefix in the default version string, keeping14.18 - Adjust default config to enable MySQL compatibility and listen on
3306
Pigsty does not provide warranty coverage for OpenHalo kernel behavior. Contact the upstream vendor about kernel-specific issues.
Warning: This kernel is currently in beta1. Evaluate its risks carefully before production use.
Available Extensions
The OpenHalo kernel has 59 available extensions. The following table lists the extra extensions, excluding bundled PG Contrib extensions:
| Extension | Version | Description |
|---|---|---|
| aux_mysql | 1.5 | MySQL Supplementary Extension |
| hstore_plpython2u | 1.0 | transform between hstore and plpython2u |
| hstore_plpythonu | 1.0 | transform between hstore and plpythonu |
| jsonb_plpython2u | 1.0 | transform between jsonb and plpython2u |
| jsonb_plpythonu | 1.0 | transform between jsonb and plpythonu |
| ltree_plpython2u | 1.0 | transform between ltree and plpython2u |
| ltree_plpythonu | 1.0 | transform between ltree and plpythonu |
Was this page helpful?
Thanks—your feedback helps us improve this page.
What got in the way? (optional)