首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

Visual Studio 連接 MySQL 配置全流程:從 VC6 到 VS2010+ 避坑指南

     編輯:MySQL 綜合教學

Visual Studio 連接 MySQL 配置全流程

C/C++ 專案在 Visual Studio 中連接 MySQL 需正確配置包含目錄、庫目錄、鏈接庫,並注意平台目標(x86/x64)與 MySQL Connector/C 版本匹配。本文覆蓋 VS2010 及以上版本的標準化配置步驟。

一、前置準備

  1. 下載 MySQL Connector/C 6.1+(官方 C API 庫),根據編譯器版本選擇 32-bit 或 64-bit ZIP 包。
  2. 解壓至固定路徑,如 D:\mysql-connector-c-6.1.11-winx64。

二、VS 專案屬性配置(以 VS2019/2022 為例)

  1. 包含目錄:
    專案 → 屬性 → 配置屬性 → VC++ 目錄 → 包含目錄 → 編輯 → 新增:
    D:\mysql-connector-c-6.1.11-winx64\include
  2. 庫目錄:
    同頁面 → 庫目錄 → 新增:
    D:\mysql-connector-c-6.1.11-winx64\lib
  3. 附加依賴項:
    配置屬性 → 鏈接器 → 輸入 → 附加依賴項 → 新增:
    libmysql.lib
    若使用靜態庫則加 mysqlclient.lib,但官方推薦動態庫
  4. 運行時庫一致性:
    C/C++ → 代碼生成 → 運行時庫:
    Debug 配置選 多線程調試 (/MTd),Release 選 多線程 (/MT),需與 Connector/C 編譯選項一致,否則會報運行時錯誤。

三、關鍵避坑:平台目標必須匹配

64 位系統默認平台為 x86,若 Connector/C 是 64 位,必須新建 x64 平台:

  1. 配置管理器 → 作用中解決方案平台 → 新增 → 輸入/選擇 x64 → 複製設定自 Win32。
  2. 確認所有專案平台均為 x64。
  3. 重新建置。

否則會出現 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 foundDLL 不在 PATH 或 exe 目錄複製 dll 到輸出目錄
插入中文亂碼連接字符集未設定mysql_set_character_set(conn, "utf8mb4")
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved