我想使用
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;
我看到表create语句将charset设置为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通常都是非常可靠的工作,不应该自己改变编码.如果他们使用“二进制”字符集,那么实际上可能是给表的字符集(不一定是列).您可以在数据库浏览器中重新检查当前表字符集吗?
我会尝试一个简单,简单的mysqldump到一个文件中,将转储恢复到镜像数据库,并仔细查看特殊字符.与使用phpMyAdmin进行的备份不同,来自命令行的备份往往在我的经验中运行良好.