apt install mysql-server)CREATE DATABASE ghost_prod CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER 'ghost_user'@'localhost' IDENTIFIED BY 'strong_password'; GRANT ALL PRIVILEGES ON ghost_prod.* TO 'ghost_user'@'localhost'; FLUSH PRIVILEGES;
https://your-domain.com/ghost/debugGhostData.json(包含文章、用戶、設置等所有內容)編輯 config.production.json (或 config.js 舊版):
{
"database": {
"client": "mysql",
"connection": {
"host": "localhost",
"user": "ghost_user",
"password": "strong_password",
"database": "ghost_prod",
"charset": "utf8mb4"
},
"debug": false
},
"url": "https://your-domain.com",
"server": { "port": 2368, "host": "127.0.0.1" }
}
關鍵:client 從 sqlite3 改為 mysql,補全連接參數。
# systemd 管理 sudo systemctl restart ghost_# 或進程管理器 pm2 restart ghost
Ghost 啟動時自動執行遷移腳本,在 MySQL 中創建完整表結構(約 30+ 張表)。
/ghost/debug 頁面GhostData.json| 現象 | 原因 | 解決 |
|---|---|---|
| 啟動報錯 ER_ACCESS_DENIED_ERROR | 用戶名/密碼/主機不匹配 | 檢查 MySQL 用戶 host 欄位,確保 'localhost' 或 '127.0.0.1' |
| 導入卡住/報錯 | JSON 文件過大超過 PHP/Node 上傳限制 | 調整 client_max_body_size (Nginx) 或分批導入 |
| 表情符號顯示亂碼 | 字符集非 utf8mb4 | 資料庫/表/連接統一 utf8mb4,Ghost 2.0+ 默認支援 |
| 遷移後無法登錄 | 密碼雜湊算法不兼容 | Ghost 使用 bcrypt,直接用新建賬號登錄,舊賬號需重置密碼 |
innodb_buffer_pool_size (建議 50-70% 物理內存)mysqldump 備份,異地存儲