C/C++ 專案在 Visual Studio 中連接 MySQL 需正確配置包含目錄、庫目錄、鏈接庫,並注意平台目標(x86/x64)與 MySQL Connector/C 版本匹配。本文覆蓋 VS2010 及以上版本的標準化配置步驟。
D:\mysql-connector-c-6.1.11-winx64。D:\mysql-connector-c-6.1.11-winx64\includeD:\mysql-connector-c-6.1.11-winx64\liblibmysql.libmysqlclient.lib,但官方推薦動態庫64 位系統默認平台為 x86,若 Connector/C 是 64 位,必須新建 x64 平台:
否則會出現 LNK1112: 模組電腦類型 'X86' 與目標電腦類型 'x64' 衝突 或運行時 BadImageFormatException。
libmysql.dll 放入與 exe 同級目錄,或加入系統 PATH。mysql_library_init(0, NULL, NULL) 初始化,mysql_library_end() 釋放。#include#include int main() { MYSQL *conn = mysql_init(NULL); if (!mysql_real_connect(conn, "localhost", "root", "password", "testdb", 3306, NULL, 0)) { fprintf(stderr, "連接失敗: %s\n", mysql_error(conn)); return 1; } if (mysql_query(conn, "SELECT VERSION()")) { fprintf(stderr, "查詢失敗: %s\n", mysql_error(conn)); return 1; } MYSQL_RES *res = mysql_store_result(conn); MYSQL_ROW row = mysql_fetch_row(res); printf("MySQL 版本: %s\n", row[0]); mysql_free_result(res); mysql_close(conn); return 0; }
| 現象 | 原因 | 解決 |
|---|---|---|
編譯錯誤 mysql.h: No such file | 包含目錄未配置或路徑錯誤 | 檢查 VC++ 目錄 → 包含目錄 |
鏈接錯誤 unresolved external symbol _mysql_init | 庫目錄或附加依賴項缺失 | 加入 lib 目錄與 libmysql.lib |
運行時報 libmysql.dll not found | DLL 不在 PATH 或 exe 目錄 | 複製 dll 到輸出目錄 |
| 插入中文亂碼 | 連接字符集未設定 | mysql_set_character_set(conn, "utf8mb4") |