您好,登錄后才能下訂單哦!
下文主要給大家帶來mysql5.7導出數據時出現--secure-file-priv選項應對方法,希望mysql5.7導出數據時出現--secure-file-priv選項應對方法能夠帶給大家實際用處,這也是我編輯這篇文章的主要目的。好了,廢話不多說,大家直接看下文吧。
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
執行后,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
查看官方文檔,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)
因為 secure_file_priv 參數是只讀參數,不能使用set global命令修改。
mysql> set global secure_file_priv=''; ERROR 1238 (HY000): Variable 'secure_file_priv' is a read only variable
解決方法
打開my.cnf 或 my.ini,加入以下語句后重啟mysql。
secure_file_priv=''
查看secure_file_priv修改后的值
mysql> show global variables like '%secure_file_priv%'; +------------------+-------+| Variable_name | Value | +------------------+-------+| secure_file_priv | | +------------------+-------+1 row in set (0.00 sec)
修改后再次執行,成功導出。
';
執行后,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
查看官方文檔,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)
因為 secure_file_priv 參數是只讀參數,不能使用set global命令修改。
mysql> set global secure_file_priv=''; ERROR 1238 (HY000): Variable 'secure_file_priv' is a read only variable
解決方法
打開my.cnf 或 my.ini,加入以下語句后重啟mysql。
secure_file_priv=''
查看secure_file_priv修改后的值
mysql> show global variables like '%secure_file_priv%'; +------------------+-------+| Variable_name | Value | +------------------+-------+| secure_file_priv | | +------------------+-------+1 row in set (0.00 sec)
修改后再次執行,成功導出。
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)
對于以上關于mysql5.7導出數據時出現--secure-file-priv選項應對方法,大家是不是覺得非常有幫助。如果需要了解更多內容,請繼續關注我們的行業資訊,相信你會喜歡上這些內容的。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。