Replace MariaDB on a cPanel host with Absolute DB in one command. Sub-100 ms atomic flip, 7-day automatic rollback window, WHMCS billing integration. Zero application code changes.
The cPanel Surgical Swap replaces MariaDB with Absolute DB on any cPanel/WHM server. Because Absolute DB speaks the MySQL wire protocol on port 3306, every cPanel-managed application — WordPress, Joomla, PrestaShop, WHMCS, Drupal, Magento — continues working without any configuration or code changes.
Verifies cPanel version, MariaDB version, available disk space, existing databases, and backup status.
Creates a complete logical backup of all databases using mysqldump. Stored in /opt/absdb/swap-backup/.
Downloads and installs the absdb-server binary. Configures the MySQL wire protocol on port 3306 with mysql_native_password authentication.
Imports all databases and users from the MariaDB dump into Absolute DB using the migration CLI.
Stops MariaDB, starts Absolute DB on port 3306 (and PG wire on 5433, REST on 8080). The socket path /var/lib/mysql/mysql.sock is symlinked to Absolute DB. Total downtime: < 100 ms.
Runs health checks: cPanel API connectivity, SHOW DATABASES, phpMyAdmin access, WordPress wp db check.
| Requirement | Details |
|---|---|
| cPanel/WHM | Version 110+ (CentOS 7/8, AlmaLinux 8/9, Ubuntu 22.04+) |
| MariaDB | 10.3 – 11.x (currently installed via cPanel) |
| Disk space | 2× current MySQL data directory size (for backup) |
| Root access | SSH root or sudo required |
| Downtime window | < 5 minutes total (most is backup time) |
# One-command swap (as root)
curl -fsSL https://downloads.absolutedb.com/cpanel-swap.sh | bash
# Or step-by-step:
# 1. Download
curl -fsSL https://downloads.absolutedb.com/install.sh | bash
# 2. Run the swap wizard
absdb-cpanel-swap --preflight # check prerequisites
absdb-cpanel-swap --backup # backup MariaDB
absdb-cpanel-swap --swap # perform atomic swap
absdb-cpanel-swap --verify # run health checks
--preflight first. The swap script will refuse to proceed if prerequisites are not met.
If anything goes wrong, roll back to MariaDB in one command:
# Rollback to MariaDB (within 7-day window)
absdb-cpanel-swap --rollback
# What this does:
# 1. Stops Absolute DB
# 2. Restores MariaDB from /opt/absdb/swap-backup/
# 3. Restarts MariaDB on port 3306
# 4. Removes Absolute DB socket symlink
# Total rollback time: < 2 minutes
The MariaDB backup is automatically cleaned up after 7 days. To extend the retention window:
# Extend rollback window to 30 days
absdb-cpanel-swap --extend-rollback 30d
The swap includes a WHMCS billing driver module that enables hosting providers to sell Absolute DB as an add-on product:
# Install WHMCS module
cp -r /opt/absdb/whmcs-module/ /path/to/whmcs/modules/servers/absolutedb/
# Configure in WHMCS Admin:
# Setup > Products/Services > Servers > Add New Server
# Type: AbsoluteDB
# Hostname: localhost
# Port: 3306
Tested and verified with common cPanel applications:
| Application | Status | Notes |
|---|---|---|
| WordPress | Full | wp-config.php unchanged, WP-CLI compatible |
| Joomla | Full | configuration.php unchanged |
| PrestaShop | Full | parameters.php unchanged |
| Drupal | Full | settings.php unchanged |
| Magento | Full | env.php unchanged |
| WHMCS | Full | configuration.php unchanged |
| phpMyAdmin | Full | Connects via MySQL protocol, all features work |
| cPanel MySQL UI | Full | "MySQL Databases" interface works normally |
| Softaculous | Full | One-click installs create databases via MySQL protocol |
No. Absolute DB binds to the same port (3306) and socket path (/var/lib/mysql/mysql.sock). All connection strings remain identical.
Absolute DB handles common MySQL-isms: SET NAMES, SELECT @@version, SHOW DATABASES/TABLES/COLUMNS, USE database, backtick quoting. Standard SQL (which WordPress, Joomla, etc. all use) works identically.
Yes. phpMyAdmin connects via the MySQL wire protocol and works normally.
Every cPanel site immediately gains: vector search, full-text BM25, graph queries, time-series, native TLS 1.3, post-quantum crypto, PITR backup, and the built-in web console on port 8080.
~154 KB binary · zero external dependencies · 2,737 tests passing · SQL:2023 100%