返回顶部
首页 > 资讯 > 数据库 >Mysql 报“Finished with error”,该怎么及解决?
  • 261
分享到

Mysql 报“Finished with error”,该怎么及解决?

mysql数据库sql 2023-09-01 16:09:18 261人浏览 独家记忆
摘要

用了多年的Mysql,当用navicat导库时,偶尔会遇到“Finished with error”错误, 如下图: 下面是我结合工作经验,总结一下,将相应情况及解决方法提供给网友们: 情况1:导入

用了多年的Mysql,当用navicat导库时,偶尔会遇到“Finished with error”错误,
如下图:
在这里插入图片描述
下面是我结合工作经验,总结一下,将相应情况及解决方法提供给网友们:

情况1:导入的sql数据库脚本文件中日期字段内容包含零值,如’0000-01-01’、‘0000-00-00’,此时如果不方便修正日期字段的时间值,那么就需要修改mysql的sql_mode的参数值NO_ZERO_IN_DATE和NO_ZERO_DATE,将其去掉。步骤如下:
1)在MySQL的bin⽬录下 mysql -h localhost -u root -p ,连接数据库
2)select @@sql_mode; 查看权限,可以看到有NO_ZERO_IN_DATE,NO_ZERO_DATE

3)去除NO_ZERO_IN_DATE,NO_ZERO_DATE,设置sql_mode的值为
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISioN_BY_ZERO,NO_ENGINE_SUBSTITUTION

命令:
set session sql_mode=‘ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION’;
然后提交:
commit;

4)重启MySQL,然后查看:
select @@sql_mode;
此时没有NO_ZERO_IN_DATE,NO_ZERO_DATE了。
见下图:
在这里插入图片描述
注意:关于NO_ZERO_IN_DATE与NO_ZERO_DATE的介绍,参见《MySQL的sql_mode的参数值NO_ZERO_IN_DATE和NO_ZERO_DATE总结》https://cdn.modb.pro/db/336144

情况2:当前Mysql版本过低,而sql源文件高于当前版本,比如Mysql5.7不支持utf8mb4_0900_ai_ci与utf8mb4_da_0900_ai_ci,而Mysql8.0支持,如果sql脚本是Mysql8.0生成的,那么当导入Mysql5.7时,会出现报“Finished with error”错误,那么出现这种情况,有二种方法,一是升级Mysql版本,二是修改sql文件,将其中的utf8mb4_0900_ai_ci与utf8mb4_da_0900_ai_ci替换成utf8mb4_unicode_ci或者utf8mb4_general_ci,当然这要与数据库的字符排序规则相匹配(此种方式只用于浏览查看数据,不建议用于生产环境)。

下面是Mysql8.0生成的sql文件,其中包含utf8mb4_0900_ai_ci的示例,见下图:
在这里插入图片描述

来源地址:https://blog.csdn.net/helloworldchina/article/details/128509815

您可能感兴趣的文档:

--结束END--

本文标题: Mysql 报“Finished with error”,该怎么及解决?

本文链接: https://lsjlt.com/news/389031.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作