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