MySQL 导出导入二进制文件

环境:winXP, mysql, Redhat

在一次从RHEL 5 dump整个数据库并在winXP下恢复,由于有一个表包含图片数据,导致“’”分隔符被吞噬(由于二进制编码的问题,引号分隔符被当作了数据的一部分),从而使得数据不能被正常导入。造成整个数据库无法导入。

解决方法:1.  使用select [binary_column] into dumpfile ‘dump_dir’ from [table_name], 然后在命令行中insert into table(binary_column) values(load_file(‘dump_dir’)); 由于只能导出单行。用起来相当麻烦。

2.  使用select col1, col2, … , hex([binary_column])  into outfile ‘dump_dir’ from [table_name], 然后在命令行中导入load data infile ‘dump_dir’ into table [table_name], 最后将之前转化为十六制的字段再转为二进制 update [table_name] set [binary_column] = unhex([binary_column]),这样就完成导入过程。

作者: hqiang1984

量化自我,极简主义