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

Excel VBA连接外部MySQL 8.0服务器(ODBC)报错求助

Excel VBA连接MySQL 8.0时ODBC驱动找不到的问题

环境配置

  • 64位MySQL 8.0服务器(部署于Oracle云Ubuntu服务器)
  • ODBC Connector 8.0 Unicode 64位驱动
  • 64位Office 365

报错信息

[Microsoft][ODBC Driver Manager] Data source name not found, and no default driver specified

问题代码

Public Function OpenConnection() As ADODB.Connection
    ''This function requires the "Microsoft ActiveX Data Objects" Library (Choose v2.8 from references for compatibility across Office versions)

    Dim source As String, location As String, user As String, password As String
    location = My server IP
    user = "ExcelTest"
    password = "Pass"
    database = "Test"
    mysql_driver = "MySQL ODBC 8.0 Driver" ''Tried "MySQL ODBC 8.0 Unicode Driver" too

    ''Build the connection string
    Dim connectionString As String

    connectionString = "Driver={" & mysql_driver & "};Server=" & location & ";Database=" & database & ";UID=" & user & ";PWD=" & password

    ''Create and open a new connection
    Set OpenConnection = New ADODB.Connection
    OpenConnection.CursorLocation = adUseClient
    Call OpenConnection.Open(connectionString)

End Function

解决方案

1. 确认驱动名称完全匹配

打开64位ODBC数据源管理器(路径:C:\Windows\System32\odbcad32.exe),在「驱动程序」标签中查看MySQL驱动的精确名称,必须与连接字符串里的名称完全一致(包括空格、版本号),比如MySQL ODBC 8.0 Unicode Driver。

2. 修正变量声明与IP配置

代码中database和mysql_driver未声明类型,添加Dim声明避免作用域问题;同时替换location为实际服务器IP:

Dim database As String, mysql_driver As String
location = "你的服务器IP地址"

3. 适配MySQL 8.0认证方式

MySQL 8.0默认使用caching_sha2_password插件,需在连接字符串中指定认证方式:

connectionString = "Driver={" & mysql_driver & "};Server=" & location & ";Database=" & database & ";UID=" & user & ";PWD=" & password & ";AuthPlugin=mysql_native_password"

或在MySQL服务器端修改用户认证规则:

ALTER USER 'ExcelTest'@'%' IDENTIFIED WITH mysql_native_password BY 'Pass';
FLUSH PRIVILEGES;

(%允许任意IP连接,可替换为指定IP)

4. 检查网络连通性

  • 确保本地机器能ping通服务器IP
  • 确认服务器3306端口已在Oracle云防火墙、Ubuntu本地防火墙(如ufw)中开放,允许本地IP访问

5. 验证ADODB引用版本

在VBA编辑器「工具」→「引用」中,可尝试勾选更高版本的Microsoft ActiveX Data Objects Library(如6.1),替代注释中的v2.8版本,提升兼容性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 16:25:31