如何在 MySql 中更改服务器系统变量?
将,我想处理警告:
[Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
当我想将 explicit_defaults_for_timestamp 更改为启用时,我使用此语句:
mysqld --explicit_defaults_for_timestamp=TRUE;
之后我重新运行“mysqld”,出现同样的警告。
当我通过语句检查服务器系统变量时:
mysqld --verbose --help
我看到我的第一条语句没有更改变量 explicit_defaults_for_timestamp
最佳答案
这是一个警告,让您知道行为已更改并修复任何预期旧行为的数据库。引用 explicit_defaults_for_timestamp .
简而言之,您必须正确设置数据库并实际设置您希望发生的行为。如果您希望默认值为 NULL
,请将其设置为 NULL
,如果您希望它自动设置当前时间戳,请将其设置为 DEFAULT CURRENT_TIMESTAMP
.
在此之前,您可以插入一个 NULL
值,它实际上默认为当前时间戳,因此不再允许这种懒惰的编程行为。他们发出警告的原因是,这将破坏 future 移植到较新版本的数据库的功能。
他们建议您启用新变量,看看现在您的系统会出现什么问题,以便您可以进行必要的更改。将来您升级后将没有该选项,因为:
explicit_defaults_for_timestamp is itself deprecated because its only purpose is to permit control over now-deprecated TIMESTAMP behaviors that will be removed in a future MySQL release. When that removal occurs, explicit_defaults_for_timestamp will have no purpose and will be removed as well.
关于mysql - 更改服务器系统变量mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18044475/