驱动在这个地方下载:
MySQL :: Download MySQL Connector/C (Archived Versions)
我下载的是:mysql-connector-c-6.1.11-winx64
解压后lib有2个,一个是libmysql.lib一个是mysqlclient.lib
他们的区别如下:
libmysql.lib 和 mysqlclient.lib 都是 MySQL C Connector 的库文件,但它们针对不同的操作系统和编译器。
libmysql.lib 是 Windows 平台上使用的库文件,它是使用 Visual Studio 编译器编译的。这个库文件包含了 MySQL C Connector 的所有功能,包括连接 MySQL 数据库、执行 SQL 语句、处理结果集等。
mysqlclient.lib 是 Linux 平台上使用的库文件,它是使用 GCC 编译器编译的。这个库文件也包含了 MySQL C Connector 的所有功能。
因此,如果你在 Windows 平台上使用 Visual Studio 编译器,你应该使用 libmysql.lib;如果你在 Linux 平台上使用 GCC 编译器,你应该使用 mysqlclient.lib。
但他们的include文件是一样的,所以只要链接好对应的lib库,就可以跨平台了。
下面给出C++相关的代码,用的是Qt的pro管理项目:
QT -= guiCONFIG += c++11 console
CONFIG -= app_bundleINCLUDEPATH += D:\mysql\mysql-connector-c-6.1.11-winx64\include
LIBS += -LD:\mysql\mysql-connector-c-6.1.11-winx64\lib -llibmysql# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0SOURCES += \main.cpp# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
main.cpp如下:
#include <QCoreApplication>
#include <mysql.h>
#include <stdio.h>int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);MYSQL *conn;MYSQL_RES *res;const char *server = "localhost";const char *user = "root";const char *password = "root";conn = mysql_init(NULL);if(!mysql_real_connect(conn, server, user, password, NULL, 0, NULL, 0)){fprintf(stderr, "%s\n", mysql_error(conn));return -1;}printf("MySQL version: %s\n", mysql_get_server_info(conn));mysql_close(conn);return a.exec();
}
运行结果如下: