mysql - 更改服务器系统变量mysql

标签 mysql

如何在 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/

相关文章:

mysql - MySQL 全文搜索会返回我需要的结果吗?

php - 如何使用 MySQL 在 PHP 中执行多个更新查询?

mysql - 允许/要求只有一个具有共同 FK 的记录具有 "primary"标志

php - 执行 php 请求时如何传递多参数字符串

mysql - 表 'XXX.dbo.aspnetusers'不存在,迁移VS-Mysql

MySQL从多个表中选择1个结果,并从1个具有多个值的表中选择最大值

php - 如何仅使用提交按钮更新填写的输入?

mysql - Magento错误: SQLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded;

php - 将 commit 设置为 false 后获取最后插入的 id

MySQL CHAR() 函数和 UTF8 输出?