为何MSYS2中没有MySQL Connector/C++软件包?
在MSYS2中用C++连接MySQL的解决方案
由于MSYS2官方源没有提供MySQL Connector/C++的预编译包,你可以通过以下两种方式解决:
方式一:使用兼容的MariaDB客户端库(快速方案)
MariaDB的C客户端库与MySQL API完全兼容,直接安装即可用于C++代码连接MySQL:
- 打开MSYS2的MinGW64终端,执行安装命令:
pacman -S mingw-w64-x86_64-libmariadbclient - 编写C++代码时,直接调用MySQL的C API(或基于该库封装的逻辑),示例编译命令:
g++ your_code.cpp -o your_program -lmysqlclient
方式二:手动编译MySQL Connector/C++(官方库方案)
如果必须使用官方的MySQL Connector/C++,可手动编译源码:
- 先安装编译依赖:
pacman -S mingw-w64-x86_64-cmake mingw-w64-x86_64-gcc mingw-w64-x86_64-boost - 下载MySQL Connector/C++的源码包,解压后进入源码目录,执行以下步骤:
mkdir build && cd build cmake .. -G "MinGW Makefiles" -DCMAKE_INSTALL_PREFIX=/mingw64 -DMYSQLCLIENT_INCLUDE_DIR=/mingw64/include/mariadb -DMYSQLCLIENT_LIBRARY=/mingw64/lib/libmariadbclient.dll.a mingw32-make && mingw32-make install
编译完成后,即可在项目中链接Connector/C++的库文件进行开发。
测试代码示例
以下是基于MariaDB客户端库的简单连接测试代码:
#include <mysql.h> #include <iostream> int main() { MYSQL *conn = mysql_init(nullptr); if (!mysql_real_connect(conn, "localhost", "你的用户名", "你的密码", "目标数据库名", 3306, nullptr, 0)) { std::cerr << "连接失败: " << mysql_error(conn) << std::endl; return 1; } std::cout << "数据库连接成功!" << std::endl; mysql_close(conn); return 0; }
内容的提问来源于stack exchange,提问作者user10704605
相关产品推荐
相关产品推荐

