錯(cuò)誤出現(xiàn)情景
在cmd中使用mysql命令,學(xué)生信息表添加數(shù)據(jù)。使用load data方式簡(jiǎn)單批量導(dǎo)入數(shù)據(jù)。
準(zhǔn)備好文本數(shù)據(jù): xueshengxinxi.txt 文件 數(shù)據(jù)之間以tab鍵進(jìn)行分割
執(zhí)行 “l(fā)oad data infile 文本數(shù)據(jù)路徑 into table tab_load_data” 彈出錯(cuò)誤。
#load data (載入數(shù)據(jù))語(yǔ)法,要載入數(shù)據(jù)如下:
1 張三 男 江西 1
2 李四 男 四川 2
3 王五 男 上海 1
4 趙六 女 湖北 3
5 孫七 女 湖北 3
6 周八 男 湖南 1
#測(cè)試數(shù)據(jù)表
create table tab_load_data (
id int auto_increment primary key,
name varchar(10),
sex enum('男','女'),
native varchar(10),
f5 int
);
錯(cuò)誤描述
使用load data 導(dǎo)入文件數(shù)據(jù)總是彈出錯(cuò)誤(Error 1290.....)如下:
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

解決思路(過(guò)程)
1) 既然錯(cuò)誤提示說(shuō)明運(yùn)行了secure-file-priv這個(gè)選項(xiàng),不能執(zhí)行l(wèi)oad服務(wù),那就找到MYSQL的配置文件"my.ini" 中該配置項(xiàng)。
2) 配置前,先關(guān)閉mysql服務(wù)
3) 打開my.ini,搜索關(guān)鍵字“secure-file-priv”找到這個(gè)選項(xiàng)后,直接注釋掉這個(gè)選項(xiàng),保存后,啟動(dòng)MYSQL服務(wù)

4) 結(jié)果還是一樣的錯(cuò)誤。說(shuō)明注釋沒有效果。這是怎么回事了?
執(zhí)行命令 “show variables like '%secure%'”發(fā)現(xiàn)原來(lái)我注釋掉后,secure-file-priv的值為NULL,說(shuō)明禁止導(dǎo)入導(dǎo)出。
這說(shuō)明注釋掉是不行的。不刪配置文件條目,那只好修改目錄好了。
5)修改路徑,執(zhí)行命令 “show variables like '%secure%'” 查看 , 重啟MYSQL。


6)再執(zhí)行l(wèi)oad data, 執(zhí)行成功

更復(fù)雜的load用法可以查看mysql手冊(cè)。 到此,該問題解決。
三, 小結(jié)說(shuō)明
從本錯(cuò)誤中吸取:
1) load data : 可以從一個(gè)外部的記事本文件中導(dǎo)入數(shù)據(jù)到某個(gè)表中。
該記事本中的數(shù)據(jù)通常要求“比較整齊”,一行文本對(duì)應(yīng)一行數(shù)據(jù),一行中用某種字符(如用tab符)來(lái)分割一個(gè)一個(gè)字段的值
2) secure-file-priv這個(gè)參數(shù)用來(lái)限制數(shù)據(jù)導(dǎo)入和導(dǎo)出操作的效果。
如:執(zhí)行LOAD,SELECT...INTO OUTFILE語(yǔ)句和LOAD_FILE()函數(shù)。這些操作需要file權(quán)限。
3)如果 secure-file-priv這個(gè)參數(shù)設(shè)為一個(gè)目錄名,MYSQL服務(wù)只允許這個(gè)目錄中執(zhí)行文件的導(dǎo)入和導(dǎo)出操作。
這個(gè)目錄必須存在,MYSQL服務(wù)不會(huì)創(chuàng)建它。
4) 如果secure-file-priv這個(gè)參數(shù)為NULL,MYSQL服務(wù)會(huì)禁止導(dǎo)入和導(dǎo)出操作。
您可能感興趣的文章:- Java利用MYSQL LOAD DATA LOCAL INFILE實(shí)現(xiàn)大批量導(dǎo)入數(shù)據(jù)到MySQL
- MySQL中由load data語(yǔ)句引起死鎖的解決案例
- mysql中Load Data記錄換行問題的解決方法
- mysql load data infile 的用法(40w數(shù)據(jù) 用了3-5秒導(dǎo)進(jìn)mysql)
- mysql中的Load data的使用方法
- mysql 的load data infile
- mysql Load Data InFile 的用法
- MySQL數(shù)據(jù)庫(kù) Load Data 多種用法