首先是从原表里面导出数据,由于旧的表数据格式是latin1 ,需要更新为utf8;
mysqldump -t --default-character-set=latin1 56_flash_flv
admin_56_master_log2012 > admin_56_master_log2012
由于数据的量不是很大,导出来后通过notpead++ 进行转换。
格式-->转为UTF8 无BOM 格式-->保存文件。
然后把文件放到另外一台机器,执行mysqldump 的导入命令:
mysqldump --default-character-set=utf8 backend_56 admin_56_master_log2012
< admin_56_master_log2012
这样执行后,命令一直没有报错,但是执行完后表里面没有数据。几行数据的话,复制粘贴想怎么折腾就怎么折腾。数据
多了就的考虑方式了和方法了。
看了一下dump出来文件的内容,可以发现一个INSERT 开头的一行。担心问题不知道出在哪里,所以是单个表导出的。
cat admin_56_master_log|grep ^INSERT |mysql --default-character-set=utf8
56_flash_flv
这招貌似也可以啊,嘻嘻!
那么导数据究竟是什么原因呢?按照导出的规则,这个看似没有问题啊,
mysqldump --default-character-set=utf8 backend_56 admin_56_master_log2012
< admin_56_master_log2012
后面试了一下,发现原来是后面不应该有表名,只要有database 就可以了,insert 的时候会自己去找对应的表。
没有评论:
发表评论