/var/lib/mysql)保持不變。mysql_upgrade 更新系統表。systemctl stop mysqld pacman -S mariadb libmariadbclient mariadb-clients systemctl start mysqld mysql_upgrade -p
zypper in mariadb
步驟一:獲取軟件源配置
訪問 MariaDB Repository Configuration Tool,選擇對應發行版/版本,生成 sources.list 內容。例如:
# MariaDB 5.5 repository list deb https://mirror2.hs-esslingen.de/mariadb/repo/5.5/debian squeeze main deb-src https://mirror2.hs-esslingen.de/mariadb/repo/5.5/debian squeeze main
追加至 /etc/apt/sources.list。
步驟二:導入金鑰並安裝
apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db apt-get update apt-get install mariadb-server mariadb-client
安裝過程會自動協載 MySQL/Percona 並替換為 MariaDB。
步驟三:收尾清理與升級
apt-get autoremove apt-get upgrade # 或 dist-upgrade mysql_upgrade -p
mysql -V 確認版本顯示 MariaDBSHOW ENGINES; 確認 XtraDB (InnoDB 替代品) 存在| 問題 | 原因 | 解決 |
|---|---|---|
| 啟動失敗 | 配置文件參數不兼容(如 innodb_file_format) | 對照 MariaDB 文檔調整 my.cnf |
| 複制中斷 | GTID 模式差異或 Binlog 格式不一致 | 統一 binlog_format=ROW,重新構建從庫 |
| 性能回退 | 優化器行為變化導致執行計劃劣化 | 收集統計資訊 ANALYZE TABLE,必要時加 Hint 或改寫 SQL |
| 客戶端連接報錯 | 舊版 libmysqlclient 兼容性 | 升級客戶端驅動至 MariaDB Connector/C |
MySQL → MariaDB 遷移在 Linux 下極其平滑,核心就是替換 Server 包 + 執行 mysql_upgrade。建議先在測試環境全流程演練,確認業務無感後再推進生產。擁抱社區驅動的開源資料庫,長遠收益遠大於遷移成本。