恢复数据库备份会导致错误的字符

时间:2012-08-22 12:57:01

标签: mysql linux

仅仅使用mysql -h [IP] -u root -p [DATABASE] < [FILE].sql恢复数据库是否有可能导致西班牙语字符丢失“西班牙语”并显示所有时髦?

2 个答案:

答案 0 :(得分:1)

来自this

  

问题基本上与默认值不匹配有关   MySQL中的排序规则和中指定的排序/字符集   .sql文件。要解决此问题,请确保它们都匹配。如果你正在使用   MySQL 4+,默认排序规则可能是UTF-8,所以请确保   该文件也设置了默认的colltion。提出以下内容   .sql顶部的行似乎可以解决问题:

/*!40101 SET NAMES utf8 */;
     

原因似乎与进口商有关:即使有一个   如果没有,则在数据库和表上设置默认排序规则   整个文件的默认值,每个插入都被误解为UTF-8   必须以latin1封装的表。还检查一下   .sql文件中的表创建语句也是UTF-8,如下所示:

CREATE TABLE `wp_comments` (
...
) ENGINE=MyISAM  DEFAULT CHARSET=utf8;

答案 1 :(得分:0)

这听起来像是latin1 vs utf8不匹配。旧数据库可能已转储为一个编码,而新数据库使用不同的默认编码创建。尝试使用--default-character-set=utf8标志或者用latin1替换utf8是行不通的。