Since v9.0.2 — Project HORIZON

MySQL Wire Protocol

Absolute DB speaks native MySQL wire protocol on port 3306. Every MySQL client, ORM, and tool connects without modification — clean-room implementation, zero external dependencies.

Overview

New in v9.0.2 "Project ZENITH": Absolute DB implements the MySQL wire protocol, allowing any MySQL client to connect on port 3306. This is a clean-room implementation — no MySQL code, no MariaDB libraries, no external dependencies.

The MySQL wire protocol runs alongside the PostgreSQL wire protocol (port 5433), REST API (port 8080), gRPC (port 9090), and other protocols. Enable or disable it independently via the Adaptive Protocol Manager.

Absolute DB on port 3306 is a drop-in replacement for MySQL/MariaDB. Applications that use standard MySQL clients and SQL syntax work without code changes.

Compatible Clients

Verified compatible with the following MySQL clients and drivers:

mysql CLI
MySQL Workbench
mysql-connector-python
mysql-connector-j (JDBC)
Sequelize (mysql2)
mysql2-node
go-sql-driver/mysql
libmysqlclient
Rails / ActiveRecord
DBeaver (MySQL mode)
phpMyAdmin
HeidiSQL

Connection Examples

bash
# MySQL CLI
mysql -h 127.0.0.1 -P 3306 -u myuser -p

# MySQL Workbench: Host=127.0.0.1, Port=3306, User=myuser
python
import mysql.connector
conn = mysql.connector.connect(
    host='127.0.0.1', port=3306,
    user='myuser', password='secret',
    database='mydb'
)
cursor = conn.cursor()
cursor.execute('SELECT * FROM users LIMIT 10')
rows = cursor.fetchall()
javascript
// Node.js with mysql2
const mysql = require('mysql2/promise');
const conn = await mysql.createConnection({
  host: '127.0.0.1', port: 3306,
  user: 'myuser', password: 'secret',
  database: 'mydb'
});
const [rows] = await conn.execute('SELECT * FROM users LIMIT 10');
java
// JDBC (mysql-connector-j)
String url = "jdbc:mysql://127.0.0.1:3306/mydb";
Connection conn = DriverManager.getConnection(url, "myuser", "secret");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM users LIMIT 10");
go
// go-sql-driver/mysql
import "database/sql"
import _ "github.com/go-sql-driver/mysql"

db, _ := sql.Open("mysql", "myuser:secret@tcp(127.0.0.1:3306)/mydb")
rows, _ := db.Query("SELECT * FROM users LIMIT 10")

Protocol Details

FeatureStatus
Default port3306
Handshake versionMySQL protocol v10
Server version string9.0.2-AbsoluteDB
COM_QUERYFull support
COM_PINGFull support
COM_QUITFull support
COM_INIT_DBFull support
COM_FIELD_LISTFull support
COM_STATISTICSFull support
Prepared statementsCOM_STMT_PREPARE / EXECUTE / CLOSE
TLS (mysql --ssl)Native TLS 1.3 via adb_tls_native
Capability flagsCLIENT_PROTOCOL_41, CLIENT_SECURE_CONNECTION, CLIENT_SSL

Authentication

Absolute DB supports the following MySQL authentication methods:

MethodDescription
mysql_native_passwordSHA-1 double-hash (default for maximum compatibility)
caching_sha2_passwordSHA-256 with server-side cache (MySQL 8.0+ default)
Absolute DB maps MySQL users to the unified RBAC system. Create users with standard SQL: CREATE USER 'name' IDENTIFIED BY 'password'.

Supported SQL Commands

All standard SQL runs through the unified Absolute DB SQL engine. MySQL-specific compatibility commands are also handled:

CommandBehaviour
SET NAMES utf8mb4Acknowledged (Absolute DB is always UTF-8)
SET character_set_*Acknowledged for compatibility
SHOW DATABASESLists all accessible databases
SHOW TABLESLists tables in current database
SHOW COLUMNS FROM tReturns column metadata
SHOW CREATE TABLE tReturns DDL statement
SHOW VARIABLESReturns server configuration
USE databaseSwitches active database/schema
SELECT @@versionReturns 9.0.2-AbsoluteDB

SET NAMES & Character Sets

Absolute DB stores all text as UTF-8 internally. SET NAMES commands are accepted for MySQL client compatibility but do not change internal encoding. This ensures applications that issue SET NAMES utf8mb4 on connect (including WordPress, Laravel, Rails, Django) work without modification.

Enabling MySQL Protocol

bash
# Enable at startup
absdb-server --proto pg_wire,rest,mysql

# Or use protocol presets
absdb-server --preset enterprise    # enables all protocols

# Runtime enable/disable
adb_admin --protocol enable mysql
adb_admin --protocol disable mysql

# Configuration file (/etc/absdb/absdb.conf)
[protocols]
pg_wire = on
rest    = on
mysql   = on

cPanel Integration

The MySQL wire protocol enables the cPanel / WHMCS Surgical Swap — replacing MariaDB on a cPanel host with Absolute DB. Since Absolute DB speaks MySQL wire protocol on port 3306, all cPanel-managed sites (WordPress, Joomla, PrestaShop, etc.) connect without any code or configuration changes.

See the cPanel Swap Guide for full instructions.

Continue Reading

Ready to run Absolute DB?

~154 KB binary  ·  zero external dependencies  ·  2,737 tests passing  ·  SQL:2023 100%