Mysql

如何正確備份 mediawiki 數據庫 (mysql) 而不會弄亂數據?

  • April 6, 2015

我想使用 mysqldump 備份儲存在 MySQL 伺服器 5.1.36 中的 mediawiki 數據庫。

大多數 wiki 文章都是用西班牙語編寫的,並且不想通過使用錯誤的字元集創建轉儲來搞砸它。

mysql> status
--------------
...
Current database:       wikidb
Current user:           root@localhost
...
Server version:         5.1.36-community-log MySQL Community Server (GPL)
....
Server characterset:    latin1
Db     characterset:    utf8
Client characterset:    latin1
Conn.  characterset:    latin1
...

使用以下命令:

mysql> show create table text;

我看到 table create 語句將字元集設置為binary

CREATE TABLE `text` (
 `old_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
 `old_text` mediumblob NOT NULL,
 `old_flags` tinyblob NOT NULL,
 PRIMARY KEY (`old_id`)
) ENGINE=InnoDB AUTO_INCREMENT=317 DEFAULT CHARSET=binary MAX_ROWS=10000000 AVG_ROW_LENGTH=10240

我應該如何使用 mysqldump 為該數據庫正確生成備份?

mysqldump並且show create table通常是非常可靠的主力,不應自行更改編碼。如果他們使用“二進制”字元集,很可能實際上是給表的字元集(但不一定是columns)。您可以在數據庫瀏覽器中重新檢查目前表字元集嗎?

我會嘗試一個簡單、簡單mysqldump的文件,將轉儲恢復到鏡像數據庫中,並仔細查看特殊字元。與使用 phpMyAdmin 進行的備份不同,根據我的經驗,來自命令行的備份往往效果很好。

引用自:https://serverfault.com/questions/130246