mysql遇到load data匯入檔案資料出現1290錯誤的解決方案
錯誤出現情景
在cmd中使用mysql命令,學生資訊表新增資料。使用load data方式簡單批量匯入資料。
準備好文字資料: xueshengxinxi.txt 檔案 資料之間以tab鍵進行分割
執行 “load data infile 文字資料路徑 into table tab_load_data” 彈出錯誤。
#load data (載入資料)語法,要載入資料如下: 1 張三 男 江西 1 2 李四 男 四川 2 3 王五 男 上海 1 4 趙六 女 湖北 3 5 孫七 女 湖北 3 6 周八 男 湖南 1 #測試資料表 create table tab_load_data ( id int auto_increment primary key,name varchar(10),sex enum('男','女'),native varchar(10),f5 int );
使用load data 匯入檔案資料總是彈出錯誤(Error 1290.....)如下:
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
解決思路(過程)
1) 既然錯誤提示說明運行了secure-file-priv這個選項,不能執行load服務,那就找到MYSQL的配置檔案"my.ini" 中該配置項。
2) 配置前,先關閉mysql服務
3) 開啟my.ini,搜尋關鍵字“secure-file-priv”找到這個選項後,直接註釋掉這個選項,儲存後,啟動MYSQL服務
4) 結果還是一樣的錯誤。說明註釋沒有效果。這是怎麼回事了?
執行命令 “show variables like '%secure%'”發現原來我註釋掉後,secure-file-priv的值為NULL,說明禁止匯入匯出。
這說明註釋掉是不行的。不刪配置檔案條目,那隻好修改目錄好了。
5)修改路徑,執行命令 “show variables like '%secure%'” 檢視 , 重啟MYSQL。
6)再執行load data, 執行成功
更復雜的load用法可以檢視mysql手冊。 到此,該問題解決。
三, 小結說明
從本錯誤中吸取:
1) load data : 可以從一個外部的記事本檔案中匯入資料到某個表中。
該記事本中的資料通常要求“比較整齊”,一行文字對應一行資料,一行中用某種字元(如用tab符)來分割一個一個欄位的值
2) secure-file-priv這個引數用來限制資料匯入和匯出操作的效果。
如:執行LOAD,SELECT...INTO OUTFILE語句和LOAD_FILE()函式。這些操作需要file許可權。
3)如果 secure-file-priv這個引數設為一個目錄名,MYSQL服務只允許這個目錄中執行檔案的匯入和匯出操作。
這個目錄必須存在,MYSQL服務不會建立它。
4) 如果secure-file-priv這個引數為NULL,MYSQL服務會禁止匯入和匯出操作。