SQLyog以excel文件导入mysql数据库失败:[Microsoft][ODBC Excel 驱动程序] 保留错误 (-5016); 没有这种错误的消息
来源:互联网 发布:阿里云 paas iaas 编辑:程序博客网 时间:2024/06/06 02:53
前言
之前经常使用excel导入数据库的方式来进行数据填充,于2017年11月部署一个项目的时候,上线前发现导入数据失败,显示报错为[Microsoft][ODBC Excel 驱动程序] 保留错误 (-5016); 没有这种错误的消息
。当时情况紧急,幸好数据量不多,便只好手动导入了全部的二十余条数据。想必是驱动程序的原因,后续便通过更换驱动程序解决了这个问题。但是从本质上来说,解决这种问题的根本方案,应该是即使更换其他更新更好的数据库操作软件,而不是降低补丁版本来继续维持向后的兼容
情况概述
将wps保存的excel文件,用SQLyog导入mysql数据库,会提示错误为[Microsoft][ODBC Excel 驱动程序] 保留错误 (-5016); 没有这种错误的消息
。起初怀疑是wps没有office驱动的原因,结果重新安装好office之后,用office保存的excel文件仍然报错。
上网查阅资料,由于微软在2017-10-10更新了安全补丁(KB4041678,KB4041681),更新了Microsoft JET Database Engine导致asp、asp.net等无法读取Excel。因此会有下面这些报错情况
Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'
[Microsoft][ODBC Excel 驱动程序] 保留错误 (-5016); 没有这种错误的消息。
外部数据库驱动程序中(1)的意外错误
解决方案
方案A:
网上查得,卸载微软安全补丁(KB4041678,KB4041681)即可,(如何卸载Windows系统更新补丁)。打开 控制面板->程序->程序和功能->已安装更新
,即可看到windows更新的列表。
点名称可按名称排序,但是在里面本人并未找到安全补丁 KB4041678 和 KB4041681,怀疑是不是360做了奇奇怪怪的更新而控制面板却没有内容,因此转而使用方案B。
方案B:
该解决方案来自百度知道用户:fisheso
核心原理:直接改动驱动文件msexcl40.dll
在微软打补丁后异常的新版驱动文件为:4.0.9801.1
版本的msexcl40.dll
,大小为337KB,我们需要做的是,改变导入时用到的驱动文件。
这个改动有两种方法,其一是备份原驱动文件,复制旧版驱动文件到原文件目录下。
其二是更改注册表的文件指向,复制旧版驱动文件到源目录下(不要同名),在注册表内修改使得导入时执行旧版驱动文件。此处采用其二。
1、在系统盘C盘内搜索文件msexcl40.dll
,如果是32位系统,一般会在C:\Windows\System32\
下,如果是64位系统一般会在C:\Windows\SysWOW64\
下。
2、找到这个文件之后,检查一下这个文件的大小,如果是337KB,说明是新版的驱动文件导致的原因。如果不是,那可能不是该驱动导致的导入失败,需要排除一下其他的原因。
3、获取旧版332KB版本的4.0.9801.0
的驱动文件msexcl40.dll
,或者或更早版本的:比如4.0.9502.0
。
4、在网上多有查到下载地址,但是出于安全考虑没有随便下载,找同事的电脑要了一份332KB的驱动文件,改名为yfmsexcl40.dll
后复制到了原文件的目录下。我的电脑是32位系统的,同事的电脑是64位的,但是好像这个驱动程序与系统无冲突,可以正常使用,把驱动文件上传到了网盘,下载地址为:https://pan.baidu.com/s/1eSElmSU,密码是j56b,如果被封了请联系 test@szer.me
【注意:对文件目录下的驱动文件改名、删除、移动都需要系统管理员权限】
5、通过开始菜单键+R打开运行,输入regedit,进入注册表并用ctrl+F搜索msexcl40.dll。(一般在计算机\HKEY_LOCAL_MACHINE\SOFTWARE\
里,再找到Microsoft\Jet\4.0\Engines\Excel
,64位系统可参照文末的链接进行操作)
双击win32,把Excel的win32数值数据,从原来的xxxxx....\msexcl40.dll
改成之前同目录下复制的旧版驱动文件xxxxxx...\yfmsexcl40.dll
(若之前文件改名或复制路径成其他,则路径名文件名为其他)
6、然后就可以正常使用SQLyog以excel文件导入mysql数据库了。
参考
进销存系统导入excel文件时提示[ODBC Microsoft EXCEL 驱动程序] 保留错误(-5016)没有这种错误的消息
Microsoft Jet 数据库引擎远程执行代码漏洞的安全更新说明:2017 年 10 月 10 日
[综合应用] Excel导入外部数据出现问题的成因及解决方案
- SQLyog以excel文件导入mysql数据库失败:[Microsoft][ODBC Excel 驱动程序] 保留错误 (-5016); 没有这种错误的消息
- 导入Excel文件错误
- Excel文件无法导入,错误: 它已经被别的用户以独占方式打开,或没有查看数据的权限。
- ODBC Excel驱动程序登陆失败
- 当您试图配置 Microsoft Access 2010 数据库用户数据源: 错误消息"Microsoft 访问驱动程序 (*.mdb、 *.accdb) ODBC 驱动程序的安装程序例程未找到。
- C#导入Excel时到数据库,报外部数据库驱动程序中(1)的意外错误
- 一个坑爹的软件在导入execl时报打开Excel文件出错:Microsoft Jet 数据库引擎找不到对象错误。
- [ODBC]读Excel时报错:外部数据库驱动程序(1)中的意外错误解决方案
- 找不到 Microsoft Excel Driver ODBC 驱动程序的安装例程 解决方案
- 使用SQLyog将Excel数据导入Mysql数据库
- 坑!!!win10安全更新补丁导致程序运行报错,弹框提示:保留错误(-5016); 没有这种错误的消息
- JDBC-ODBC的EXCEL读取错误
- 导入excel 到sqlserver数据库 外部数据库驱动程序中(1)的意外错误 [问题点数:40分]
- odbc连接dbf表出现 [Microsoft][ODBC 驱动程序管理器] 驱动程序不支持此功能” 错误的解决方法
- 数据库导入excel表格汉字编码错误
- ODBC读取Excel错误 Microsoft Jet 数据库引擎找不到对象'Sheet1' 请确认对象是否存在,并正确地写出它的名称和路径
- ssm往mysql中导入excel出现的错误
- [Microsoft][ODBC 驱动程序管理器]驱动程序的SQLSetConnectAttr 失败的解决办法!
- 在RequestTracker(RT)里用msmtp通过远程smtp服务器465端口发邮件
- 【Android UI自动化测试】Java+appium+ADT+uiautomatorviewer+Android模拟器
- 11月20日云栖精选夜读:围观阿里总部:边喝茶边搞技术是一种怎样的体验?
- Android中的缓存策略--LruCache
- 规范word整理的HTML笔记~
- SQLyog以excel文件导入mysql数据库失败:[Microsoft][ODBC Excel 驱动程序] 保留错误 (-5016); 没有这种错误的消息
- 北极的夜空(转载)
- 【Scikit-Learn 中文文档】内核岭回归
- Kafka、RabbitMQ、RocketMQ消息中间件的对比 —— 消息发送性能 (阿里中间件团队博客)
- 平衡二叉树
- windows端部署python开发环境
- ios视频编辑SDK-RDVECore来自锐动的无UI,高度抽象化API
- html过滤正则表达式
- mysqld 5.7.19-0ubuntu0.16.04.1 ERROR 1045(28000):Access denied ......