如何查看目前主機空間上MySQL版本
若您的主機代管商是使用 cPanel 控制台(何謂 cPanel 控制台,請點我),在虛擬主機架設網頁程式時(無論是 WordPress、Drupal、Laravel…等 CMS 或自寫程式),若需資料庫支援,需先確認主機上的資料庫版本。
可於 cPanel 控制台中點選 phpMyAdmin,從畫面上方即可看到目前伺服器的 MySQL 或 MariaDB 版本:
另外也可於 cPanel → 伺服器資訊中查看資料庫相關資訊。
MySQL 與 MariaDB 常見不相容問題整理
雖然 MariaDB 是基於 MySQL 原始碼開發,兩者在大多數情況下相容,但在實務應用與細節上仍存在不少差異。以下整理常見的不相容狀況,建議在進行版本轉移或資料庫移植前務必詳細測試:
1. 🔍 儲存引擎(Storage Engine)差異
- MariaDB 提供 Aria、TokuDB、ColumnStore 等 MySQL 沒有的引擎。
- 使用這些引擎建立的資料表在 MySQL 中無法直接匯入或識別。
2. ⚙️ 系統變數與參數設定
- MySQL 和 MariaDB 的預設變數可能不同,例如
innodb_strict_mode
。 - MySQL 有
performance_schema
,MariaDB 的支援度較弱或預設關閉。 - 匯入設定檔時可能出現無效參數錯誤。
3. 🧩 SQL 語法支援差異
- MariaDB 支援
INSERT ... RETURNING
,但 MySQL 8.0 前不支援。 - MySQL 原生支援 JSON 資料型別及
JSON_TABLE
,MariaDB 仍使用 LONGTEXT 處理 JSON。 - 使用特定語法的資料表或儲存程序在轉移時容易產生錯誤。
4. 🔐 帳號與權限管理不同
- MySQL 8.0 採用
caching_sha2_password
加密登入,MariaDB 不支援,可能導致登入失敗。 mysql.user
欄位設計不同,權限設定搬移後可能遺失或無效。
5. 📦 複製與叢集架構不同
- MariaDB 使用 Galera Cluster,MySQL 使用 Group Replication,設定與同步方式不同。
- 跨平台無法直接搬移複製設定,需重建。
6. 🛠 資料型別與長度限制
- MariaDB 的索引與欄位長度限制不同,如
VARCHAR
上限或複合索引大小。 - 搬移資料時可能因欄位定義衝突而產生建表錯誤。
7. 🧪 版本發展路線與節奏不同
- MySQL 由 Oracle 主導,更新節奏保守。
- MariaDB 為社群驅動,更新較快,但新功能可能不穩定。
📌 建議
- 避免直接將資料庫從 MySQL 切換至 MariaDB 或反之。
- 若需切換,應做好完整備份,並於測試環境充分驗證應用程式相容性。
延伸閱讀:維基百科:MySQL、MariaDB
延伸閱讀:MariaDB 與 MySQL 相容性官方說明
如何取得網頁程式串聯資料庫的資訊
一般程式串接資料庫時會需要以下 4 組資訊:
- 主機位址 (DB_HOST):虛擬主機預設為
localhost
- 資料庫名稱 (DB_NAME):例如 hapytest_test
- 資料庫使用者 (DB_USER):例如 hapytest_user
- 資料庫密碼 (DB_PASSWORD):建立時設定的密碼
在cPanel內建立時,系統會自動加上帳號為前綴,請注意輸入程式中使用正確的完整名稱。
主機空間串聯資料庫(MySQL)的提醒
cPanel 的帳密可同時用於登入 cPanel 與 FTP,但不建議用作資料庫使用者密碼,否則未來更改 cPanel 密碼時,若未一併更新程式設定,將造成連線失敗,甚至導致網站錯誤無法顯示。
此外使用 cPanel 帳密無法細部設定資料庫權限,增加資安風險,請務必為資料庫獨立設定使用者與密碼。
於 cPanel >> MySQL資料庫 建立資料庫設定步驟
整體分為 3 大步驟:
- 建立資料庫:
①至cPanel裡選點:MySQL資料庫
②在〝目前資料庫裡〞可以看到設定完成的資料庫名稱 - 新增資料庫使用者與密碼
①至cPanel裡選點:MySQL資料庫的下方可以建立MySQL資料庫,在〝目前使用者〞可以看到設定完成的MySQL使用者
- 將資料庫使用者加到資料庫裡(常見錯誤是漏掉這步驟)
①在cPanel裡選點:MySQL資料庫裡〝最下方〞會有〝新增使用者到資料庫〞,請選擇要搭配使用的使用者和資料庫。
②設定使用者可以管理資料庫的權限
③設定完成後,在早先建立資料庫的〝目前資料庫〞裡可以看到〝具有權限的使用者〞,這樣即是完成了。
※若使用者未加到資料庫,即便設定了名稱與密碼,程式也無法順利連線。
延伸閱讀:不登入cPanel也能用phpMyAdmin管理MySQL的方法
在cPanel中建立SQL資料庫需要幾個步驟?
共需三步:建立資料庫名稱、建立使用者與密碼、將使用者加到資料庫中,缺一不可。
資料庫使用者可以使用cPanel帳號密碼嗎?
雖然技術上可行,但強烈不建議使用 cPanel 帳號密碼作為資料庫使用者的密碼,原因如下:
- 改了 cPanel 密碼,網站立即當機: 若您的 WordPress 或 Laravel 程式使用的是 cPanel 密碼,一旦更改該密碼但忘了同步更新程式設定,網站將因資料庫連線失敗而無法顯示。
- 無法單獨控制某網站資料庫存取: 若多個網站共用一個 cPanel 帳號,而某一網站需要停止資料庫存取,無法只移除該使用者,必須更改整個 cPanel 密碼,將連帶影響其他網站。
- 無法細部設定資料庫權限: 使用 cPanel 帳號無法對資料庫進行如唯讀、限制資料庫範圍等權限管理,增加資料安全風險。
- 一旦外洩,整個主機安全受威脅: 若網站設定檔遭洩漏,駭客可用相同密碼登入 cPanel、FTP、Webmail 等服務,風險比單一資料庫密碼外洩高出數倍。
- 維護作業容易遺漏: 經常有使用者修改 cPanel 密碼後忘記更新程式內部設定,導致網站突如其來無法連線,嚴重影響用戶體驗與信任。
因此,建議為每個資料庫建立獨立使用者與密碼,能有效降低風險、提升維運彈性與安全性。
文章來源: https://wpoki.com
GIPHY App Key not set. Please check settings
One Comment