Windows下啓動MySQL5.6服務出現"--secure-file-priv"的報錯, 以及後續"Explicit defaults for timestamp"報錯解決

問題闡述

CMD下執行命令行:

// 前臺啓動MySQL服務
D:\Program Files (x86)\mysql-5.6.37_64\bin\mysqld.exe --defaults-file="D:/Program Files (x86)/mysql-5.6.37_64/my.ini"

出現報錯:

// 類似以下一個屬性的報錯.因爲以前有過類似錯誤,原因就是因爲配置文件問題.
...--secure-file-priv...

問題解決:

–secure-file-priv 是什麼?

secure-file-priv參數是用來限制LOAD DATA, SELECT … OUTFILE, and LOAD_FILE()傳到哪個指定目錄的.

當secure_file_priv的值爲null ,表示限制mysqld 不允許導入|導出;
當secure_file_priv的值爲/tmp/ ,表示限制mysqld 的導入|導出只能發生在/tmp/目錄下;
當secure_file_priv的值沒有具體值時,表示不對mysqld 的導入|導出做限制;

–secure-file-priv 問題解決.

編輯配置文件my.ini.
新增屬性:

// 雖然上文說可以留空,但是實際上配置不能留空,不然會有提示說該屬性不能爲空值.
// 並且,爲了以後的導出導入, 新增 /tmp的子路徑.
secure_file_priv ="D:\Program Files (x86)\mysql-5.6.37_64\tmp"

重新編輯my.ini 之後再次執行服務啓動命令.問題解決了,但是又出現新的問題:

// 根據前臺報錯提示.得知某個屬性已經啓用, 需要以下屬性.
[Warning] TIMESTAMP with implicit DEFAULT value is deprecated.
Please use --explicit_defaults_for_timestamp server option (see
documentation for more details).

編輯配置文件 my.ini,增加一項設置:

explicit_defaults_for_timestamp = 1

重新啓動服務, 加載配置文件,每天其它報錯. 問題得到解決.

什麼是explicit_defaults_for_timestamp參數

explicit_defaults_for_timestamp參數主要用來控制TIMESTAMP數據類型跟其他數據類型不一致的特性,但是TIMESTAMP的這個特性在將來會被廢棄,所以explicit_defaults_for_timestamp參數也會在將來被廢棄.

更多參考:

http://blog.csdn.net/donghaixiaolongwang/article/details/73799809

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章