如何在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
答案 0 :(得分:1)
这是一个警告,让您知道行为已更改并修复任何需要旧行为的数据库。参考explicit_defaults_for_timestamp。
简而言之,您必须正确设置数据库并实际设置您想要发生的行为。如果您希望默认值为NULL
,请将其设置为NULL
,如果您希望自动设置当前时间戳,请将其设置为DEFAULT CURRENT_TIMESTAMP
。
在发生之前,您可以插入一个值NULL
,它实际上会默认为当前时间戳,因此将不再允许这种懒惰的编程行为。他们警告的原因是因为这将破坏移植到新版本未来版本的数据库的功能。
他们建议您启用新变量,只是为了查看系统现在会中断什么,这样您就可以进行必要的更改。将来升级后您将无法选择,因为:
explicit_defaults_for_timestamp本身已被弃用,因为它是唯一的 目的是允许控制现已弃用的TIMESTAMP行为 将在未来的MySQL版本中删除。当那个删除 发生,explicit_defaults_for_timestamp将没有任何目的和意志 也被删除。