43

当我尝试启动我的 mySQL 服务器时,我收到消息:

[警告] 带有隐式 DEFAULT 值的 TIMESTAMP 已弃用。
请使用 --explicit_defaults_for_timestamp 服务器选项(有关详细信息,请参阅文档)。

我在以下位置找到答案:
http ://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_explicit_defaults_for_timestamp

但是如何启用呢?在哪里?

4

9 回答 9

77

首先,您还不需要更改任何内容。

这些非标准行为仍然是 TIMESTAMP 的默认行为,但自 MySQL 5.6.6 起已弃用,并且此警告在启动时出现

现在,如果你想转向新的行为,你必须my.cnf在 [mysqld] 部分中添加这一行。

explicit_defaults_for_timestamp = 1

my.cnf(或其他配置文件)的位置因系统而异。如果找不到,请参阅https://dev.mysql.com/doc/refman/5.7/en/option-files.html

于 2013-04-09T08:01:20.947 回答
30

在您的 mysql 命令行中执行以下操作:

mysql> SHOW GLOBAL VARIABLES LIKE '%timestamp%';
+---------------------------------+-------+
| Variable_name                   | Value |
+---------------------------------+-------+
| explicit_defaults_for_timestamp | OFF   |
| log_timestamps                  | UTC   |
+---------------------------------+-------+
2 rows in set (0.01 sec)

mysql> SET GLOBAL explicit_defaults_for_timestamp = 1;
Query OK, 0 rows affected (0.00 sec)

mysql> SHOW GLOBAL VARIABLES LIKE '%timestamp%';
+---------------------------------+-------+
| Variable_name                   | Value |
+---------------------------------+-------+
| explicit_defaults_for_timestamp | ON    |
| log_timestamps                  | UTC   |
+---------------------------------+-------+
2 rows in set (0.00 sec)
于 2018-10-03T07:30:15.687 回答
11

Windows平台上,

  1. 找到您的my.ini配置文件。
  2. my.ini中转到该[mysqld]部分。
  3. 添加explicit_defaults_for_timestamp=true不带引号并保存更改。
  4. 启动mysqld

这对我有用(Windows 7 Ultimate 32bit

于 2014-01-21T11:42:09.760 回答
6

对我来说,将不带引号的短语“explicit_defaults_for_timestamp = ON”my.ini添加到配置文件中很有效。

确保在配置文件中的 [mysqld] 语句下方添加此短语。

您将在my.ini下面找到C:\ProgramData\MySQL\MySQL Server 5.7是否进行了 MySQL 的默认安装。

于 2018-01-14T13:33:06.120 回答
4

在你的 mysql 命令行中:SET explicit_defaults_for_timestamp=1

于 2016-11-30T10:53:13.870 回答
3

在 Windows 上,您可以使用选项键运行服务器,无需更改 ini 文件。

"C:\mysql\bin\mysqld.exe" --explicit_defaults_for_timestamp=1

于 2015-03-27T13:38:16.133 回答
1

在我的系统(Windows 8.1)上,问题出在服务器配置上。当我安装它时,服务器第一次工作。但是,我忘记检查“作为服务运行”选项,这导致了所有问题。我尝试了 SO 上所有可能的解决方案,但没有任何效果。所以,我决定重新安装 MySQL Workbench。在执行我之前用于安装 MySQL 工作台的相同 msi 文件时,我重新配置了服务器并允许将服务器作为服务运行。

于 2014-10-30T15:01:13.650 回答
1

在 Windows 上 - 打开 my.ini 文件,位于“C:\ProgramData\MySQL\MySQL Server 5.6”,在下一行找到“[mysqld]”(不带引号)添加显式默认值for_timestamp,然后保存更改。

于 2015-06-05T08:58:08.877 回答
0

我正在使用 Windows 8.1,我使用此命令

c:\wamp\bin\mysql\mysql5.6.12\bin\mysql.exe

代替

 c:\wamp\bin\mysql\mysql5.6.12\bin\mysqld

它工作正常..

于 2014-07-17T16:56:33.443 回答