本文主要記錄了在使用MySQL的過程中遇到的問題以及解決方案。 ...
MySQL——報錯及解決方案
摘要:本文主要記錄了在使用MySQL的過程中遇到的問題以及解決方案。
定義timestamp類型的數據
相關日誌
1 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
解決辦法
在配置文件中加入:
1 [mysqld] 2 # explicit_defaults_for_timestamp 3 explicit_defaults_for_timestamp=true
問題說明
MySQL5.6.6以前:
如果timestamp類型的列指定值為null,預設為當前timestamp。
如果timestamp類型的列沒有指定值為null,也就是沒有傳值,預設為非null的一個值。
表中第一個timestamp列,如果沒有指定值為null、也沒有設置預設值,在插入和更新時都會設置為當前時間。
表中第一個timestamp列之後的所有timestamp列,如果沒有被定義為null、定義default值,會設置為'0000-00-00 00:00:00'。
MySQL5.6.6以後,需要在配置文件里設置 explicit_defaults_for_timestamp=true ,其含義為:
如果timestamp類型的列指定值為null,預設為當前timestamp。
如果timestamp類型的列沒有指定值為null,也就是沒有傳值,預設為null。
聲明timestamp類型的列不為能為null,而且沒有指定預設值。在插入時timestamp類型的列沒有指定值,如果是嚴格sql模式,會拋出一個錯誤,如果嚴格sql模式沒有啟用,該列會賦值為‘0000-00-00 00:00:00’,同時出現警告。
導入導出許可權設置
相關日誌
1 [Note] --secure-file-priv is set to NULL. Operations related to importing and exporting data are disabled. 2 [Warning] Insecure configuration for --secure-file-priv: Current value does not restrict location of generated files. Consider setting it to a valid, non-empty path. 3 [ERROR] Failed to access directory for --secure-file-priv. Please make sure that directory exists and is accessible by MySQL Server.
解決辦法
在配置文件中加入:
1 [mysqld] 2 # 設置導入導出 3 secure-file-priv=D:\All\MySQL\file
問題說明
配置文件里的 secure-file-priv 參數是用來限制將數據導入導出到指定目錄的:
當值為null,表示不允許導入導出操作。
當值為具體的文件夾,表示導入導出只能在該目錄下操作,目錄不存在會報錯。
當值沒有具體值時,表示不限制導入導出操作的文件夾。