MySQL Accented角色

时间:2013-01-24 09:23:43

标签: mysql mysqldump mysql-workbench

上周我在另一个平台上迁移了我的数据库。我从phpmyadmin面板导出了mysqldump导出,然后使用bigdump脚本将其导入新平台。 我导入的sql转储文件最初存储在以这种方式设置的数据库中:

MySQL charset: UTF-8 Unicode (utf8)
MySQL connection collation: utf8_unicode_ci

我导出db选择utf8字符集但是如果我查看mysqldump文件中的每个表都会出现: DEFAULT CHARSET = latin1

现在我的重音字母(如à,è,ò,ì)出现问题,显示为Ã,Ã...等。 为了管理我的新数据库,我使用MySQL Workbench,如果我提示: 显示'char%'等变量; 我看到所有的值都是在utf8中设置的。 我该如何解决这个问题?我不是Mysql和db专家!

2 个答案:

答案 0 :(得分:0)

您可以尝试将表格的当前字符集更改为原始字符:

alter table TABLE_NAME convert to character set utf8 collate utf8_unicode_ci;

答案 1 :(得分:0)

尽管您提到了utf8设置,但您的表似乎使用了latin1。所以你有几个选择:

  1. 按原样获取创建的转储,并使用latin1连接字符集(不是utf8)将其发送到服务器。但是,这将创建具有latin1字符集的表,因为它们位于源服务器上。
  2. 如果您有可以执行此操作的工具,请将转储转换为utf-8。但是,您也必须在脚本中更改表的字符集设置。
  3. 将您的表格转换为utf8并再次进行转储。
  4. 合并1 + 3,但转换目标表。如果您无法更改源表,则非常有用。
  5. 您是否真的尝试使用MySQL Workbench将转储恢复到新服务器?我很确定它应该能够使用latin1编码备份来处理这种情况。请参阅服务器管理部分 - >数据导入/恢复。