mysql升级到5.7时,wordpress导数据报错1067的问题

最近把mysql升级到5.7了,wordpress导数据报错

Invalid default value for 'comment_date'

原因出在类似这样的语句

DROP TABLE IF EXISTS `wp_comments`;
CREATE TABLE `wp_comments`  (
  `comment_ID` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
  `comment_post_ID` bigint(20) UNSIGNED NOT NULL DEFAULT 0,
  `comment_author` tinytext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL,
  `comment_author_email` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '',
  `comment_author_url` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '',
  `comment_author_IP` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '',
  `comment_date` datetime(0) NOT NULL DEFAULT '0000-00-00 00:00:00',
  `comment_date_gmt` datetime(0) NOT NULL DEFAULT '0000-00-00 00:00:00',
  `comment_content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL,
  `comment_karma` int(11) NOT NULL DEFAULT 0,
  `comment_approved` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '1',
  `comment_agent` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '',
  `comment_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci NOT NULL DEFAULT '',
  `comment_parent` bigint(20) UNSIGNED NOT NULL DEFAULT 0,
  `user_id` bigint(20) UNSIGNED NOT NULL DEFAULT 0,
  PRIMARY KEY (`comment_ID`) USING BTREE,
  INDEX `comment_post_ID`(`comment_post_ID`) USING BTREE,
  INDEX `comment_approved_date_gmt`(`comment_approved`, `comment_date_gmt`) USING BTREE,
  INDEX `comment_date_gmt`(`comment_date_gmt`) USING BTREE,
  INDEX `comment_parent`(`comment_parent`) USING BTREE,
  INDEX `comment_author_email`(`comment_author_email`(10)) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 35 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_520_ci ROW_FORMAT = Dynamic;

这种报错多是你mysql升级到5.7而引起的默认值不兼容的问题。看看你的字段名是什么,我的是时间字段,类型是datetime。想到可能是类型的默认值被限制了,查看sql_mode。果然:NO_ZERO_IN_DATE,NO_ZERO_DATE这两个参数限制时间不能为0

查看sql_mode

mysql> show variables like 'sql_mode';
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+
| Variable_name | Value |
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+
| sql_mode | ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql>

临时修改:

mysql> set session
 -> sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql>

永久修改:

可以直接修改my.cnf文件

例如: vim /etc/my.cnf

Windows环境下修改mysql.ini配置文件就解决了~

在[mysqld]下面添加如下列:

sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

ok问题解决,现在你导入或者创建表时看看!

以上就是解决mysql升级到5.7时wordpress导数据报错1067问题的详细内容,更多关于mysql导入数据库报错1067 的资料请关注我们其它相关文章!

(0)

相关推荐

  • MySQL命令行导出与导入数据库

    举例为大家介绍如何运用命令行实现MySQL导出导入数据库 一.命令行导出数据库 1.进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录  如:cd C:\Program Files\MySQL\MySQL Server 4.1\bin  (或者直接将windows的环境变量path中添加该目录) 2.导出数据库:mysqldump -u 用户名 -p 数据库名 > 导出的文件名   如我输入的命令行:mysqldump -u root -p news > news.sq

  • mysql服务无法启动报错误1067解决方法(mysql启动错误1067 )

    试了谷歌到的几种方法,都没有解决,然后突然想起在启动apache的时候,iis的端口占用情况(因为我的apache也使用了80端口),所以  打开命令行 netstat -aon|findstr "3306" 结果显示 默默的在内心深处骂了一句"靠", 果然是端口占用,然后,顺藤摸瓜 tasklist|findstr "416" 结果显示 不得不联想到,优酷的攻城狮们的mysql数据库绝对不是使用的默认3306端口,然后杀掉explorer.ex

  • wampserver下mysql导入数据库的步骤

    你的xxx.db里面如果都是sql语句的话,那么跟着我说的做,假如你的库名叫mydb 1.进入mysql命令行 因为你是wampserver,那么就cmd进入dos mysql -u root -p 之后提示输入密码成功进入 2.建库(如果库已经存在,略过这一步) create database mydb; 3.选库 use mydb; 4.导入数据(这里假定你的xxx.db在E:\test目录下) source E:\test\xxx.db; 5.等待 你会看到mysql会导入数据,比用那些G

  • windows无法启动MySQL服务报错1067的解决方法

    突然登陆MySQL时,出现禁止访问或者无法连接到数据库,回到服务,去打开wampmysqld ,发现 "windows无法启动MySQL服务 错误1067" ,死活启动不了,咋办?虾苗我来给大家分享下经验! 方法一: 1.打开my.ini文件,找到default-storage-engine=InnoDB这一行,把它改成default-storage-engine=MyISAM. 2.删除在MySQL安装目录下的Data目录中的ib_logfile0和ib_logfile1 3.找到在

  • 修改php.ini实现Mysql导入数据库文件最大限制的修改方法

    自己电脑上装的WAMP,在导入数据库比较大(大于2M)时遇到错误,不能导入. 找到解决方法: php.ini配置文件中有三处地方需要改动: upload_max_filesize memory_limit post_max_size 这三个值都根据实际情况改下,重启服务器以后,虽然导入时仍然显示是 最大限制:2,048 KB) : 但实际上已经可以导入很大的数据库了...

  • MySQL命令行导出导入数据库实例详解

    MySQL命令行导出数据库: 1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录 如我输入的命令行:cd C:\Program Files\MySQL\MySQL Server 5.5\bin (或者直接将windows的环境变量path中添加该目录) 2,导出数据库:mysqldump -u 用户名 -p 数据库名 > 导出的文件名 如我输入的命令行:mysqldump -u lmapp -p lmapp -P 3308 > lmapp.sql   (输入后会让你

  • mysql如何利用Navicat导出和导入数据库的方法

    MySql是我们经常用到的数据,无论是开发人员用来练习,还是小型私服游戏服务器,或者是个人软件使用,都十分方便.对于做一些个人辅助软件,选择mysql数据库是个明智的选择,有一个好的工具更是事半功倍,对于MySql 的IDE 我推荐Navicat for MySql,现在我就向大家介绍如何利用Navicat for MySql 导出和导入数据. 导出数据库: 打开Navicat ,在我们要到处的数据上面右击鼠标,然后弹出的快捷菜单上点击"转储SQL 文件",在再次弹出的子菜单项中选择第

  • mysql升级到5.7时,wordpress导数据报错1067的问题

    最近把mysql升级到5.7了,wordpress导数据报错 Invalid default value for 'comment_date' 原因出在类似这样的语句 DROP TABLE IF EXISTS `wp_comments`; CREATE TABLE `wp_comments` ( `comment_ID` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, `comment_post_ID` bigint(20) UNSIGNED NOT N

  • Mysql升级到5.7后遇到的group by查询问题解决

    发现问题 最近在将mysql升级到mysql 5.7后,进行一些group by 查询时,比如下面的 SELECT *, count(id) as count FROM `news` GROUP BY `group_id` ORDER BY `inputtime` DESC LIMIT 20 就会报如下错误: SELECT list is not in GROUP BY clause and contains nonaggregated column 'news.id' which is not

  • 实战MySQL升级的最佳方法

    MySQL5.7新增了不少新功能,比如:Online DDL.多源复制.增强半同步.表空间传输.sys 库.Group Replication等.最近终于等到了一个机会,将MySQL升级到5.7,很是兴奋不已. MySQL升级的概述 MySQL升级的实质: 对数据字典的升级 数据字典有:mysql.information_schema.performance_schema.sys schema. MySQL升级的两种方式: in-place upgrade: 适合小版本的升级. 即 关闭当前的M

  • Mysql占用过高CPU时的优化手段(必看)

    Mysql占用CPU过高的时候,该从哪些方面下手进行优化? 占用CPU过高,可以做如下考虑: 1)一般来讲,排除高并发的因素,还是要找到导致你CPU过高的哪几条在执行的SQL,show processlist语句,查找负荷最重的SQL语句,优化该SQL,比如适当建立某字段的索引: 2)打开慢查询日志,将那些执行时间过长且占用资源过多的SQL拿来进行explain分析,导致CPU过高,多数是GroupBy.OrderBy排序问题所导致,然后慢慢进行优化改进.比如优化insert语句.优化group

  • 解析在MySQL里创建外键时ERROR 1005的解决办法

    在MySQL里创建外键时,提示错误,但只提示很简单的信息:ERROR 1005 (HY000): Can't create table 'db_qxztc.qx_userssssnew' (errno: 150).根本起不到解决问题的作用. 要看错误的详细提示,可以使用命令:(在MySQL Manual里搜索"errno 150"时找到) SHOW ENGINE INNODB STATUS;     //针对用INNODB存储方式的数据库 在信息中有一组[LATEST FOREIGN

  • MYSQL替换时间(年月日)字段时分秒不变实例解析

    写法1: update sas_order_supply_month_pay set RECEIVE_TIME=REPLACE(RECEIVE_TIME,DATE_FORMAT(RECEIVE_TIME,'%Y-%m-%d'),(select PERIOD_END from sas_task_supply_month_pay_period where belong='1729' and CREATE_TIME like '%2017-07-12%')) where ORDER_CODE='PO2

  • MySQL 升级方法指南大全第1/5页

    如果都是比较新的版本的升级可以参考下面的文章,MySQL数据库的版本更新很快,新的特性也随之不断的更新,更主要的是解决了很多影响我们应用的BUG,为了让我们的MySQL变得更美好,我们有必要去给它升级,尽管你会说它现在已经跑得很好很稳定完全够用了.下面我们来看看几种常用的升级方法. 介绍之前,我们先做一些声明,MySQL采用二进制包来安装,升级都是在同一台DB Server上操作. 第一种,很简单,适用于任何存储引擎. 1. 下载并安装好新版本的MySQL数据库,并将其端口改为3307(避免和旧

  • mysql关联两张表时的编码问题及解决办法

    Mysql关联两张表时,产生错误提示Illegal mix of collations 1.先用工具把数据库.两张表的编码方式改变 2.这步很重要,需要改变字段的编码方式. ALTER TABLE `表名` CHANGE `dev_chancode` `字段` VARCHAR(32) CHARACTER SET gbk NOT NULL; 总结:在建表时一定注意统一的编码方式,后续搞来搞去超级麻烦. 如何解决MySQL表编码转换问题 将待导出的数据表的表结构导出(可以用Phpmyadmin.my

  • mysql迁移至8.0时的注意事项(小结)

    密码模式 PDO::__construct(): The server requested authentication method unknown to the client [caching_sha2_password] mysql8 之后,默认的密码模式改为 caching_sha2_password,新的模式需要新的驱动,至少现在 pdo / navicat 还没给出,所以我们还是得切换成老的 mysql_native_password 模式. `mysql_native_passwo

  • MySQL命令提示符出现输入错误时如何修改前面的命令

    目录 当前问题 解决过程 具体步骤 解决案例 当前问题 ​ 在MySQL命令提示符中输入多行命令时,突然发现前面有错误,是很令人头疼的事情.大部人都知道可以通过输入\c来取消前边的输入,直接重新进入"mysql->"提示符.但是如果前边输入的东西太多,直接取消又很可惜的,需要我们重新敲打指令,如果直接复制的话,复制的每一行前面都会有"->"符号,这样又需要时间删除前面这些符号. 解决过程 ​ 这种情况下,可以输入\p,命令提示符窗口下面会弹出你前面所有输

随机推荐