WordPress 站點長期運行,數據庫備份恢復面臨「phpMyAdmin 上傳 2MB 限制」與「字符集亂碼」雙重挑戰。本文提供分表導出突破上傳限制、全鏈路 UTF-8 配置消除亂碼的實戰方案。
upload_max_filesize=2M、post_max_size=8Mwp_posts 易超限(含正文、修訂版、附件元數據)gzipped 或 zippedBigDump.php 等分批導入腳本# my.ini / my.cnf
[mysqld]
# 刪除或註釋 default-character-set=latin1
# 不要顯式設 default-character-set=utf8(僅影響服務端默認)
# 關鍵在連接層與表定義
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
utf8mb4_unicode_ci// 在 $this->dbh = @mysql_connect($dbhost, $dbuser, $dbpassword); 之後插入
$this->query("SET NAMES 'utf8mb4'");
等效於執行:
SET character_set_client = utf8mb4;
SET character_set_connection = utf8mb4;
SET character_set_results = utf8mb4;
wp-config.php 定義:define('DB_CHARSET', 'utf8mb4');define('DB_COLLATE', 'utf8mb4_unicode_ci');| 層級 | 檢查命令/位置 | 預期值 |
|---|---|---|
| 服務端 | SHOW VARIABLES LIKE 'character_set%'; | utf8mb4 相關 |
| 數據庫 | SHOW CREATE DATABASE wp_db; | DEFAULT CHARACTER SET utf8mb4 |
| 表 | SHOW CREATE TABLE wp_posts; | DEFAULT CHARSET=utf8mb4 |
| 列 | SHOW FULL COLUMNS FROM wp_posts; | utf8mb4_unicode_ci |
| 連接 | 應用日志/抓包 | SET NAMES utf8mb4 |
--default-character-set=utf8mb4CREATE DATABASE ... CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_cimysql --default-character-set=utf8mb4 ...CHECK TABLE + 業務功能測試分表導出破解上傳限制,全鏈路 utf8mb4 徹底根治亂碼,讓 WordPress 數據安全無憂。