mysql導入csv的4種報錯的解決方法
以此悼念我今天踩過的4個坑……
坑一:local的錯
報錯:
ERROR 3948 (42000): Loading local data is disabled; this must be enabled on both the client and server sides
修正:去掉local
mysql> load data infile ……
坑二:csv地址錯
報錯:
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
修正:csv放進正確的地址
先查出安全文件的地址:
mysql> load data infile ……

再把要導入的csv文件放進該文件夾:
mysql>load data infile 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/user_info_utf.csv' ……
注意:\ 必須改為 /
坑三:文件格式錯
報錯:
ERROR 1366 (HY000): Incorrect integer value: ‘\FEFF1' for column ‘userId' at row 1
修正:修改文件格式
先用excel打開,另存為,保存類型-utf8,工具-web選項-編碼utf8,替換原來文件:

再用“記事本”打開,另存為,保存類型-所有文件,編碼-utf8,替換原來文件:

坑四:空值的錯
報錯:
ERROR 1292 (22007): Incorrect date value: ‘' for column ‘birth' at row 18
修正:
修改sql_mode:
mysql> set @@sql_mode=ANSI;
備注說明:
ANSI模式:寬松模式,更改語法和行為,使其更符合標準SQL。對插入數(shù)據(jù)進行校驗,如果不符合定義類型或長度,對數(shù)據(jù)類型調(diào)整或截斷保存,報warning警告。對于csv導入空值報錯,可以先把sql_mode設置為ANSI模式,這樣便可以插入數(shù)據(jù),而對于無數(shù)據(jù)的字段值,數(shù)據(jù)庫將會用NULL值代替。
最后爬出坑:
mysql>load data infile 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/user_info_utf.csv' into table data.userinfo fields terminated by ',' optionally enclosed by '"' escaped by '"'lines terminated by '\r\n';

成功導入!感天動地!
到此這篇關(guān)于mysql導入csv的4種報錯的解決方法的文章就介紹到這了,更多相關(guān)mysql導入csv報錯內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
關(guān)于mysql數(shù)據(jù)庫連接編碼問題
這篇文章主要介紹了關(guān)于mysql數(shù)據(jù)庫連接編碼問題,默認的編碼和數(shù)據(jù)庫表中的數(shù)據(jù)使用的編碼是不一致的,如果是中文,那么在數(shù)據(jù)庫中執(zhí)行時已經(jīng)是亂碼了,需要的朋友可以參考下2023-04-04

