环境是这样的,原数据库是在windows平台下面的,且编码为latin1。要转移到FreeBSD平台下面,并且改变原先编码为utf8,原数据库中不仅有汉字,而且包含图片的二进制。
首先转移的是文本数据:
我是用mysqldump导出的文本数据,为了保险期间,也便于修改,我是逐个表导出的。
用到语句:mysqldump -uusername -p --default-character-set=latin1 --extended_insert=false dbname tablename > tablename.sql
导出以后,用Emedit编辑,更改编码到utf8,并且检查其中看有没有sql错误,进行订正。删除其中的注释行,更改原先的, default latin1 为 default utf8 并在其后添加 colloate=utf8_general_ci; 。
后用: mysql -uusername -p --default-character-set=utf8 dbname < tablename.sql
转移二进制图片数据:
大体步骤和导出文本一样,只是在导出本分本件的时候,加入了 --hex_blob 选项
mysqldump -uusername -p --default-character-set=utf8 dbname tablename --hex_blob > tablename.sql
再按照上面导入文本的方法修改sql文件,导入就可以。