MySQL 匯出匯入二進位制檔案

std1984發表於2011-05-12

環境: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]),這樣就完成匯入過程。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16582684/viewspace-695141/,如需轉載,請註明出處,否則將追究法律責任。

相關文章