1. 程式人生 > >mysql5 7匯出資料提示 secure file priv選項問題的解決方法

mysql5 7匯出資料提示 secure file priv選項問題的解決方法

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!

                       

mysql可使用 into outfile 引數把表中資料匯出到csv,例如可用以下命令把user表的資料匯出到user.csv

select * from user into outfile '/tmp/user.csv' fields terminated by ',' optionally enclosed by '"' lines terminated by '\r\n';
   
  • 1

執行後,user表的資料會匯出到/tmp/user.csv。

引數說明:

into outfile ‘匯出的目錄和檔名’
指定匯出的目錄和檔名

fields terminated by ‘欄位間分隔符’
定義欄位間的分隔符

optionally enclosed by ‘欄位包圍符’
定義包圍欄位的字元(數值型欄位無效)

lines terminated by ‘行間分隔符’
定義每行的分隔符

問題分析

以上命令在mysql5.6下執行沒有問題,但在mysql5.7下執行則出現了以下錯誤。

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 DATA, SELECT …OUTFILE, LOAD_FILE()

傳到哪個指定目錄。

  • secure_file_priv 為 NULL 時,表示限制mysqld不允許匯入或匯出。
  • secure_file_priv 為 /tmp 時,表示限制mysqld只能在/tmp目錄中執行匯入匯出,其他目錄不能執行。
  • secure_file_priv 沒有值時,表示不限制mysqld在任意目錄的匯入匯出。

 
檢視 secure_file_priv 的值,預設為NULL,表示限制不能匯入匯出。

mysql> show global variables like '%secure_file_priv%';+------------------+-------+| Variable_name    | Value |+------------------+-------+| secure_file_priv | NULL  |+------------------+-------+1 row in set (0.00 sec)
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

因為 secure_file_priv 引數是隻讀引數,不能使用set global命令修改。

mysql> set global secure_file_priv='';ERROR 1238 (HY000): Variable 'secure_file_priv' is a read only variable
   
  • 1
  • 2


解決方法

開啟my.cnf 或 my.ini,加入以下語句後重啟mysql。

secure_file_priv=''
   
  • 1

 
檢視secure_file_priv修改後的值

mysql> show global variables like '%secure_file_priv%';+------------------+-------+| Variable_name    | Value |+------------------+-------+| secure_file_priv |       |+------------------+-------+1 row in set (0.00 sec)
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

修改後再次執行,成功匯出。

mysql> select * from user into outfile '/tmp/user.csv' fields terminated by ',' optionally enclosed by '"' lines terminated by '\r\n';Query OK, 15 rows affected (0.00 sec)
   
  • 1
  • 2
           

給我老師的人工智慧教程打call!http://blog.csdn.net/jiangjunshow

這裡寫圖片描述