The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
secure-file-priv特性
secure-file-priv參數是用來限制LOAD DATA, SELECT ... OUTFILE, and LOAD_FILE()傳到哪個指定目錄的。
-
ure_file_priv的值為null ,表示限制mysqld 不允許導入|導出
-
當secure_file_priv的值為/tmp/ ,表示限制mysqld 的導入|導出只能發生在/tmp/目錄下
-
當secure_file_priv的值沒有具體值時,表示不對mysqld 的導入|導出做限制
如何查看secure-file-priv參數的值:
show global variables like '%secure%';
| mysql> show global variables like '%secure%'; | |
|---|---|
| Variable_name | Value |
| require_secure_transport | OFF |
| secure_auth | ON |
| secure_file_priv | /var/lib/mysql-files/ |
3 rows in set (0.02 sec)
MYSQL新特性secure_file_priv對讀寫文件的影響
此開關默認為NULL,即不允許導入導出。
解決問題:
windows下:修改my.ini 在[mysqld]內加入secure_file_priv =
linux下:修改my.cnf 在[mysqld]內加入secure_file_priv =
MYSQL新特性secure_file_priv對讀寫文件的影響
然后重啟mysql,再查詢secure_file_priv

如果在employee表中包含了中文字符,使用上面的語句則會輸出亂碼。此時,加入CHARACTER SET gbk語句即可解決這一個問題。修改SQL代碼如下:導出shopping數據庫中的查category3表
SELECT * FROM shopping.`category3` INTO OUTFILE
'C:/Users/Administrator/Desktop/68/cc/a2.txt'
CHARACTER SET gbk
FIELDS
TERMINATED BY '\、'
OPTIONALLY ENCLOSED BY '\"'
LINES
STARTING BY '\>'
TERMINATED BY '\r\n';
