这篇文章主要介绍“怎么解决MySQL的Warning问题”,在日常操作中,相信很多人在怎么解决mysql的Warning问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么解决mysql的Warning问题”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
目前创新互联公司已为上1000家的企业提供了网站建设、域名、网络空间、绵阳服务器托管、企业网站设计、宣恩网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
今天重启mysql错误日志显示有如下警告:
2016-06-24 09:20:07 0 [Warning] option 'general_log': boolean value '/data/DB/mysql/select.log' wasn't recognized. Set to OFF.
2016-06-24 09:20:07 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
第一个警告是查询日志文件没有找到,系统选择关闭查询日志功能:
[root@trcloud-gtt-dw ~]# ls -l /data/DB/mysql/select.log
ls: cannot access /data/DB/mysql/select.log: No such file or directory
[root@trcloud-gtt-dw ~]# touch /data/DB/mysql/select.log
[root@trcloud-gtt-dw ~]# chown mysql:mysql /data/DB/mysql/select.log
通过创建文件解决
第二个警告是要关掉这种非标准行为,得在启动服务前开启系统变量explicit_defaults_for_timestamp! 如此,系统方能按如下的方式处理timestamp:
timestamp榄没有显式声明为not null的将会允许null值。设置为null就会是null,而不是当前timestamp!
没有timestamp榄会被自动赋值为default current_timestamp或on update current_timestamp。而是要显式去赋值!
timestamp榄声明为not null并且没有显式声明一个默认值将被认定为没有默认值。向这样的榄插入记录将完全看SQL模式的心情。如果是strict模式,就报错!
如果不是,将被赋值为'00-00-00 00:00:00'并给一个警告。处理DATETIME也是这样!
通过在mysql.cnf,mysqld下面加explicit_defaults_for_timestamp=true解决
到此,关于“怎么解决mysql的Warning问题”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!