錯誤出現(xiàn)情景
在cmd中使用mysql命令,學(xué)生信息表添加數(shù)據(jù)。使用load data方式簡單批量導(dǎo)入數(shù)據(jù)。
準(zhǔn)備好文本數(shù)據(jù): xueshengxinxi.txt 文件 數(shù)據(jù)之間以tab鍵進行分割
執(zhí)行 “l(fā)oad data infile 文本數(shù)據(jù)路徑 into table tab_load_data” 彈出錯誤。
#load data (載入數(shù)據(jù))語法,要載入數(shù)據(jù)如下:
1 張三 男 江西 1
2 李四 男 四川 2
3 王五 男 上海 1
4 趙六 女 湖北 3
5 孫七 女 湖北 3
6 周八 男 湖南 1
#測試數(shù)據(jù)表
create table tab_load_data (
id int auto_increment primary key,
name varchar(10),
sex enum('男','女'),
native varchar(10),
f5 int
);
錯誤描述
使用load data 導(dǎo)入文件數(shù)據(jù)總是彈出錯誤(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這個選項,不能執(zhí)行l(wèi)oad服務(wù),那就找到MYSQL的配置文件"my.ini" 中該配置項。
2) 配置前,先關(guān)閉mysql服務(wù)
3) 打開my.ini,搜索關(guān)鍵字“secure-file-priv”找到這個選項后,直接注釋掉這個選項,保存后,啟動MYSQL服務(wù)
4) 結(jié)果還是一樣的錯誤。說明注釋沒有效果。這是怎么回事了?
執(zhí)行命令 “show variables like '%secure%'”發(fā)現(xiàn)原來我注釋掉后,secure-file-priv的值為NULL,說明禁止導(dǎo)入導(dǎo)出?! ?/p>
這說明注釋掉是不行的。不刪配置文件條目,那只好修改目錄好了。
5)修改路徑,執(zhí)行命令 “show variables like '%secure%'” 查看 , 重啟MYSQL。
6)再執(zhí)行l(wèi)oad data, 執(zhí)行成功
更復(fù)雜的load用法可以查看mysql手冊。 到此,該問題解決。
三, 小結(jié)說明
從本錯誤中吸?。?/p>
1) load data : 可以從一個外部的記事本文件中導(dǎo)入數(shù)據(jù)到某個表中。
該記事本中的數(shù)據(jù)通常要求“比較整齊”,一行文本對應(yīng)一行數(shù)據(jù),一行中用某種字符(如用tab符)來分割一個一個字段的值
2) secure-file-priv這個參數(shù)用來限制數(shù)據(jù)導(dǎo)入和導(dǎo)出操作的效果。
如:執(zhí)行LOAD,SELECT...INTO OUTFILE語句和LOAD_FILE()函數(shù)。這些操作需要file權(quán)限。
3)如果 secure-file-priv這個參數(shù)設(shè)為一個目錄名,MYSQL服務(wù)只允許這個目錄中執(zhí)行文件的導(dǎo)入和導(dǎo)出操作。
這個目錄必須存在,MYSQL服務(wù)不會創(chuàng)建它。
4) 如果secure-file-priv這個參數(shù)為NULL,MYSQL服務(wù)會禁止導(dǎo)入和導(dǎo)出操作。
您可能感興趣的文章:- Java利用MYSQL LOAD DATA LOCAL INFILE實現(xiàn)大批量導(dǎo)入數(shù)據(jù)到MySQL
- MySQL中由load data語句引起死鎖的解決案例
- mysql中Load Data記錄換行問題的解決方法
- mysql load data infile 的用法(40w數(shù)據(jù) 用了3-5秒導(dǎo)進mysql)
- mysql中的Load data的使用方法
- mysql 的load data infile
- mysql Load Data InFile 的用法
- MySQL數(shù)據(jù)庫 Load Data 多種用法