1

如何更改 MySql 中的服务器系统变量?

将,我想处理警告:

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

当我想将explicit_defaults_for_timestamp 更改为启用时,我使用以下语句:

mysqld --explicit_defaults_for_timestamp=TRUE;

之后我重新运行“mysqld”,出现同样的警告。

当我通过语句检查服务器系统变量时:

mysqld --verbose --help

我看到我的第一条语句没有更改变量explicit_defaults_for_timestamp

4

1 回答 1

1

这是一个警告,让您知道行为已更改并修复预期旧行为的任何数据库。参考explicit_defaults_for_timestamp

简而言之,您必须正确设置数据库并实际设置您希望发生的行为。如果您希望默认为NULL,请将其设置为NULL,如果您希望它自动设置当前时间戳,请将其设置为DEFAULT CURRENT_TIMESTAMP

在发生的事情之前,您可以插入一个值 asNULL并且它实际上会默认为当前时间戳,因此将不再允许这种惰性编程行为。他们发出警告的原因是,这将破坏未来移植到较新版本的数据库的功能。

他们建议您启用新变量,只是为了看看现在您的系统会出现什么问题,这样您就可以进行必要的更改。将来升级后您将无法选择,因为:

explicit_defaults_for_timestamp 本身已被弃用,因为它的唯一目的是允许控制现在已弃用的 TIMESTAMP 行为,这些行为将在未来的 MySQL 版本中删除。当删除发生时,explicit_defaults_for_timestamp 将没有任何用途,也将被删除。

于 2013-08-04T16:05:16.543 回答