1. 程式人生 > >向MySQL資料庫表內匯入txt出現錯誤情況

向MySQL資料庫表內匯入txt出現錯誤情況

1.ERROR 1148 (42000): The used command is not allowed with this MySQL version

錯誤語句:mysql> LOAD DATA LOCAL INFILE '/var/lib/mysql/pet.txt' INTO TABLE tbl_pet;

出錯原因:多了一個LOCAL關鍵詞。當檔案在客戶機端時要寫LOCAL,在伺服器端時不用寫。我的txt檔案是和MySQL資料庫在同一虛擬機器上的,所以不用加LOCAL。

2.ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

出錯原因:MySQL設定了secure-file-priv屬性對應的路徑,當資料檔案從其他路徑匯入時便會報錯。

3.ERROR 1292 (22007): Incorrect date value: '' for column 'death' at row 1

出錯原因:一開始直接把原始表格裡的資料複製到txt檔案裡沒有處理,空值的地方是空的,不符合MySQL裡空值的表示方式,所以報錯。

4.使用 LOAD DATA INFILE '/var/lib/mysql-files/pet.txt' INTO TABLE tbl_pet; 匯入資料仍然失敗

錯誤提示:' for column 'death' at row 1 date value: 'N

出錯原因:fields terminated by 預設值是'\t',lines terminated by 預設值是'\n',而Windows上的檔案換行是'\r\n',Mac OS X是'\r'。

解決辦法:加上LINES TERMINATED BY '\r\n',如下:

mysql> LOAD DATA INFILE '/var/lib/mysql-files/pet.txt' INTO TABLE tbl_pet LINES TERMINATED BY '\r\n';