WINDOWS MYSQL匯出檔案時,報錯,錯誤碼1290
MYSQL5.7以上的版本
用insert * from table_name into outfile 'dir'時,提示圖書錯誤
此時先通過這個命令檢視一下
show VARIABLES like '%secure%'
如果secure_file_priv是NULL
則出現錯誤的原因是因為MYSQL5.7增加了新許可權,secure_file_priv預設為NULL,限制了資料的匯入匯出。
此時我們可以先停止MYSQL,net stop mysql;
然後在命令列下用 mysqld --secure-file-priv=dir_name;
//dir_name,可以是一個具體的目錄,比如D:/,此時匯入匯出操作可以再D盤及其目錄下進
//也可以是空(不是NULL),空是什麼都不加,此時,所有的地方都可以進行(如果用到漢字,操作同上面括號)
//匯入導出操作
此時,該命令視窗卡住,可以再開啟另一個命令視窗,啟用mysql ,net start mysql;啟用時可能會提示啟動失敗,這個不用擔心,已經可以使用了,此時已經可以登入使用了。只不過開啟或者關閉服務都提示失敗。等下次重啟就正常了。
上一下MYSQL 操作手冊的說明:已經翻譯成了中文版(原網址為:https://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_secure_file_priv)
命令列格式 |
--secure-file-priv=dir_name |
||
變數作用域 | 全球 | ||
動態變數 | 沒有 | ||
允許的值(< = 5.6.33) | 型別 | 字串 | |
預設的 |
empty |
||
有效值 |
empty |
||
dirname |
|||
允許的值(> = 5.6.34) | 型別 | 字串 | |
預設的 |
platform specific |
||
有效值 |
empty |
||
dirname |
|||
NULL |
-
如果空,變數沒有影響。這不是一個安全的設定。
-
如果設定一個目錄的名稱,伺服器限制進出口業務工作只有該目錄中的檔案。該目錄必須存在;伺服器將不建立它。
-
如果設定為
NULL
在MySQL 5.6.34之前,這個變數預設是空的。5.6.34,預設值是特定於平臺和依賴的價值 INSTALL_LAYOUT
CMake選項,如下表所示。指定預設的secure_file_priv
值顯式地從源,如果您正在構建使用 INSTALL_SECURE_FILE_PRIVDIR
CMake選擇。
INSTALL_LAYOUT 價值 |
預設的 secure_file_priv 價值 |
---|---|
STANDALONE , WIN |
NULL |
DEB , RPM , SLES , SVR4 |
/var/lib/mysql-files |
MySQL 5.6.34,伺服器檢查的價值 secure_file_priv
在啟動和寫一個警告的錯誤日誌,如果值是不安全的。一個非NULL
值被認為是不安全的,如果它是空的,或值是資料目錄或子目錄,或一個目錄,所有使用者都可以訪問。如果 secure_file_priv
被設定為一個不存在的路徑時,伺服器將一個錯誤訊息寫入錯誤日誌並退出。