You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LabVIEW连接MySQL报0x80040e14 SQL语法错误排查求助

故障核心原因

报错本质是MySQL 8.0默认配置与ODBC驱动的兼容问题,并非代码中手动写了双引号。
MySQL 8.0相较5.7版本,默认sql_mode参数开启了ANSI_QUOTES规则:该规则下双引号包裹的内容会被服务端识别为表名、字段名这类标识符,而非普通字符串值。你所用的MySQL ODBC 8.0(a)驱动在拼接SQL语句时会自动给字段、值添加引号,在这个规则下就会出现"RFID_tag_number'这类引号不匹配的语法错误,最终抛出0x80040E14异常。
重装5.7后Workbench仍显示8.0版本的配置路径,是因为Windows下MySQL卸载不会自动清理旧版本的注册表项、系统服务残留,Workbench读取到的是未删除的旧版本配置记录,不代表当前实际运行的MySQL版本是8.0。另外直接拷贝正常设备的应用文件夹无法修复问题,因为ODBC驱动、MySQL服务配置都是系统级参数,不存在于应用目录内。

解决步骤
  • 对齐ODBC驱动版本
    打开与LabView程序位数匹配的ODBC数据源管理器(32位程序打开C:\Windows\SysWOW64\odbcad32.exe,64位程序打开C:\Windows\System32\odbcad32.exe),在「驱动」页签卸载所有MySQL ODBC 8.0版本驱动,安装与正常运行设备完全一致的5.7系列MySQL ODBC驱动,禁止用8.0版本ODBC驱动跨版本连接。
  • 修正MySQL服务端sql_mode配置
    不要以Workbench显示的配置路径为准,直接打开Windows服务列表,找到正在运行的MySQL服务,右键查看属性,「可执行文件路径」中--defaults-file=参数后跟随的路径,就是当前服务实际加载的my.ini配置文件。打开该文件,在[mysqld]分段下添加/修改sql_mode配置,移除ANSI_QUOTES项,和正常运行的5.7设备配置对齐即可,参考配置如下:
    [mysqld]
    sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
    
    修改完成后重启MySQL服务生效。
  • 清理旧版本残留(可选)
    如果需要修正Workbench显示的配置路径错误,直接删除注册表中HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\下对应MySQL 8.0的旧服务项,删除C:\ProgramData\MySQL下的MySQL 8.0残留配置文件夹,重新注册MySQL 5.7的系统服务即可。该路径显示问题不影响程序实际运行,只要驱动、sql_mode配置对齐即可恢复正常。
验证方式

配置完成后先在ODBC数据源中点击「测试连接」确认连通性,再运行LabView程序执行RFID标签读写逻辑,不再抛出SQL语法错误即为修复完成。

内容的提问来源于stack exchange,提问作者Kshitij Matey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 05:15:31