MariaDB 作為 MySQL 社區分支,由原作者 Monty Widenius 主導,完全兼容 MySQL API/命令列,卻擁有開源永久授權、更多存儲引擎、更激進的優化特性。Google、Wikipedia、LinkedIn、Mozilla 等巨頭已全面遷移。本文以 Ubuntu 為例,演示「備份 → 卸載 MySQL → 安裝 MariaDB → 還原」全流程。
注意:CentOS/RHEL 等 Fedora 系發行版可直接 yum swap mysql mariadb 自動替換,無需手動備份還原。本教程針對 Debian/Ubuntu 等需手動操作的系統。
mysql -u root -p
mysql> CREATE DATABASE linoxidedb;
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| linoxidedb |
| mysql |
| performance_schema |
| test |
+--------------------+
mysql> QUIT
# 1. 開啟 Binlog(mysqldump --master-data 需要)
sudo vim /etc/mysql/my.cnf
# [mysqld] 區塊添加:
log-bin=mysql-bin
sudo /etc/init.d/mysql restart
# 2. 全庫備份
mysqldump --all-databases --user=root --password --master-data > backupdatabase.sql

sudo cp /etc/mysql/my.cnf my.cnf.bak
sudo /etc/init.d/mysql stop
sudo apt-get remove mysql-server mysql-client

sudo apt-get install software-properties-common
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
sudo add-apt-repository 'deb https://mirror.mephi.ru/mariadb/repo/5.5/ubuntu trusty main'
sudo apt-get update
sudo apt-get install mariadb-server

安裝時詢問是否保留現有 my.cnf,選擇 N(使用新版) 即可,稍後會還原備份配置。
# 還原配置
sudo cp my.cnf.bak /etc/mysql/my.cnf
# 導入數據
mysql -u root -p < backupdatabase.sql
mysql -u root -p
MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| linoxidedb | <-- 測試庫已遷移
| mysql |
| performance_schema |
| test |
+--------------------+

| 維度 | MySQL (Oracle) | MariaDB |
|---|---|---|
| 授權 | 部分閉源插件,未來不確定性 | GPL 永久開源 |
| 存儲引擎 | InnoDB 為主 | + ColumnStore, Spider, RocksDB, MyRocks 等 |
| 並行複製 | 5.7+ 基於邏輯時鐘 | 更早實現、更成熟(slave_parallel_threads) |
| 社區活躍度 | 企業主導 | 社區驅動,發布節奏快 |
遷移風險極低,收益明顯。建議先在測試環境全流程演練,制定回滾預案(保留 MySQL 數據目錄備份),再排期生產窗口操作。