问题描述
我试图在我的 C++ 代码中访问 MysqL 数据库。我有一种感觉,我可能在此过程中搞砸了一些事情,所以我将概述我采取的步骤和我的设置:
- 我安装了 MysqL 连接器/C++
- 我安装了 MysqL XDevAPI
- 我安装了 XAMPP 并将其设置为运行 MysqL 服务器
- 我在 PHPMyAdmin 中创建了一个包含一些表的数据库
- 我链接了连接器/C++ 和 MysqL 服务器库并包含在我的 C++ 项目中
- 然后我添加了以下代码:
total = 0
我在端口 33060 上尝试过,因为我被告知这是默认设置,我在端口 3306 上尝试过,因为它说端口在 XAMPP 上。
使用第一个会出现此错误消息:“CDK 错误:无法建立连接,因为目标机器主动拒绝它。(winsock:10061)” 使用第二个会给出以下错误消息:“CDK 错误:意外消息”
我怀疑可能有问题的一件事是 MysqL 服务器和 C++ 连接器文件在我的 C 驱动器上的程序文件中,而 XAMPP 在我的 D 驱动器上的安装文件夹中似乎有一组不同的 MysqL 文件.我是否以某种方式结束了 2 个单独的 MysqL 安装,或者还有其他我无法理解的事情吗?如果是这样,我该如何处理?
解决方法
据我所知,XAMPP 现在基于 MariaDB 而不是 MySQL。 MySQL X DevAPI 连接器使用 X 协议(默认情况下,MySQL 服务器实例上的端口 33060)在 MariaDB 上不可用。
MariaDB 支持经典的 MySQL 协议(端口 3306),但您不能通过该协议使用 X DevAPI 客户端。
因此,要么您找到一种使用 MySQL 8.x 服务器的方法,要么您需要一个经典协议 connector。
免责声明:我是 Node.js 的 MySQL X DevAPI 连接器的首席开发人员