解决 MySQL 启动时的警告 “DEFAULT value deprecated”

By | 最新修改:2024-08-17

MySQL 出现警告

在 MySQL 服务器启动时,日志出现以下的警告:

[Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details)

解决方案

上文的情况可通过以下的解决方案来解决问题:

编辑 /lib/systemd/system/mysqld.service文件,修改 ExecStart 的值,追加 --explicit_defaults_for_timestamp 这个启动选项。修改后的文件内容如下:

[Unit]
Description=MySQL Community Server
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target
Alias=mysql.service

[Service]
User=mysql
Group=mysql

# Execute pre and post scripts as root
PermissionsStartOnly=true

# Needed to create system tables etc.
ExecStartPre=/usr/bin/mysql-systemd-start pre

# Start main service
## 修改这个地方
## ExecStart=/usr/bin/mysqld_safe --basedir=/usr
ExecStart=/usr/bin/mysqld_safe --basedir=/usr --explicit_defaults_for_timestamp

# Don't signal startup success before a ping works
ExecStartPost=/usr/bin/mysql-systemd-start post

# Give up if ping don't get an answer
TimeoutSec=600

Restart=always
PrivateTmp=false

LimitNOFILE=65535

重启 MySQLD:

systemctl daemon-reload
systemctl restart mysqld.service
systemctl status -l mysqld.service

程序知路

鉴于本人的相关知识储备以及能力有限,本博客的观点和描述如有错漏或是有考虑不周到的地方还请多多包涵,欢迎互相探讨,一起学习,共同进步。

本文章可以转载,但是需要说明来源出处!

本文使用的部分图片来源于网上,若是侵权,请与本文作者联系删除: admin@icxzl.com