MySQL UTF8数据库迁移

MySQL UTF8数据库迁移,mysql,encoding,utf-8,migration,Mysql,Encoding,Utf 8,Migration,我在将utf8数据库迁移到其他服务器时遇到问题。。。每个源表和目标表都有一个“DEFAULT CHARSET=utf8” 我使用mysqldump转储数据,并使用mysql

我在将utf8数据库迁移到其他服务器时遇到问题。。。每个源表和目标表都有一个
“DEFAULT CHARSET=utf8”

我使用mysqldump转储数据,并使用
mysql
导入数据,但在源表中我有“España”,在目标表中我有“España”

我阅读了一些指南,我使用了
--default character set=latin1
来导出和导入,但问题仍然存在。 我还尝试导入一个
——default character set=utf8
,但结果是:“Espa”,数据被截断为第一个出现的多字节字符

我需要帮助


提前谢谢

每个表的排序规则是什么?在我看来,第二张表的编码仍然是ISO-8859-1或类似的

另外,您使用什么工具查看目标数据?您确定工具使用的连接也是UTF-8吗?

试试看

iconv --from-code=ISO-8859-1 --to-code=UTF-8 ./file >file.utf8
mysql --default-charset=utf8 < file.utf8 

希望能有所帮助

确保客户端设置为UTF8非常重要。令人困惑的是,这与将数据库设置为UTF8不同。打开/etc/my.cnf并确保在[mysql]下而不仅仅是[mysqld]下有默认字符集=utf8


现在,您应该能够通过管道将UTF8转储直接导入mysql客户端。我还建议在mysqldump命令上使用选项--hex blob,因为mysqldump并不完美。

下面是显示CREATE TABLE code:CREATE TABLE
Country
id
int(10)unsigned not NULL自动递增,
Country
varchar(255)not NULL,主键(
id
)ENGINE=MyISAM DEFAULT CHARSET=utf8如何获取排序规则?我使用--DEFAULT character set=utf8使用mysql导入数据查看目标数据我使用mysql客户端,是,我确信这是一个utf8连接:|字符集|客户端| utf8 | |字符集|连接| utf8 |字符集和表/列排序规则不一样。表/列的排序规则是什么?你说什么?检查
ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;