MySQL——報錯及解決方案

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).

解決辦法

在配置文件中加入:sql

1 [mysqld]
2 # explicit_defaults_for_timestamp
3 explicit_defaults_for_timestamp=true

問題說明

MySQL5.6.6之前:ide

若是timestamp類型的列指定值爲null,默認爲當前timestamp。spa

若是timestamp類型的列沒有指定值爲null,也就是沒有傳值,默認爲非null的一個值。rest

表中第一個timestamp列,若是沒有指定值爲null、也沒有設置默認值,在插入和更新時都會設置爲當前時間。日誌

表中第一個timestamp列以後的全部timestamp列,若是沒有被定義爲null、定義default值,會設置爲'0000-00-00 00:00:00'。code

MySQL5.6.6之後,須要在配置文件裏設置 explicit_defaults_for_timestamp=true ,其含義爲:server

若是timestamp類型的列指定值爲null,默認爲當前timestamp。blog

若是timestamp類型的列沒有指定值爲null,也就是沒有傳值,默認爲null。ci

聲明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,表示不容許導入導出操做。

當值爲具體的文件夾,表示導入導出只能在該目錄下操做,目錄不存在會報錯。

當值沒有具體值時,表示不限制導入導出操做的文件夾。

相關文章
相關標籤/搜索