MYSQL導入CSV格式文件數據執行提示錯誤(ERROR 1290):
The MySQL server is running with the --secure-file-priv option so it cannot execute this statement.
【1】分析原因
其實原因很簡單,因為在安裝MySQL的時候限制了導入與導出的目錄權限。只允許在規定的目錄下才能導入。
可以通過以下命令查看secure-file-priv當前的值是什么
SHOW VARIABLES LIKE "secure_file_priv";
結果:
可以看到,本地value的值為NULL。NULL代表什么意思呢?經查資料:
(1)NULL,表示禁止。
(2)如果value值有文件夾目錄,則表示只允許該目錄下文件(PS:測試子目錄也不行)。
(3)如果為空,則表示不限制目錄。
【2】解決方案
問題原因找到了,解決方案因業務需求而定。
(1)方案一:
把導入文件放入secure-file-priv目前的value值對應路徑即可。
(2)方案二:
把secure-file-priv的value值修改為准備導入文件的放置路徑。
(3)方案三:修改配置
去掉導入的目錄限制。可修改mysql配置文件(Windows下為my.ini, Linux下的my.cnf),在[mysqld]下面,查看是否有:
secure_file_priv =
如上這樣一行內容,如果沒有,則手動添加。如果存在如下行:
secure_file_priv = /home
這樣一行內容,表示限制為/home文件夾。而如下行:
secure_file_priv =
這樣一行內容,表示不限制目錄,等號一定要有,否則mysql無法啟動。
修改完配置文件后,重啟mysql生效。
重啟后:
關閉:service mysqld stop
啟動:service mysqld start
再查詢結果:
經驗證,導入文件正常。