連接數據庫操作
1,將數據庫安裝好並配置好環境。
2,在項目屬性頁將自己的平台設置為與數據庫對應的平台,然后在“項目–>屬性->C/C++–>常規–>附加包含目錄”中添加MySql Server的include目錄。
3,在“項目–>屬性->鏈接器–>常規->附加庫目錄”中添加MySql Server的lib目錄。
4,在“項目–>屬性->鏈接器–>輸入->附加依賴項“中添加libmysql.lib。
5,測試代碼如下
1 #include <iostream> 2 #include<mysql.h> 3 #include<windows.h> 4 5 using namespace std; 6 MYSQL* conn; 7 int main() 8 { 9 const char* user = "root"; 10 const char* password = "123456"; 11 conn = mysql_init(NULL); 12 if (mysql_real_connect(conn, "127.0.0.1", user, password, NULL, 0, NULL, 0) == NULL) 13 cout << "數據庫連接失敗" << endl; 14 else 15 cout << "數據庫連接成功" << endl; 16 return 0; 17 18 }
6,若出現正常運行,則證明配置成功,如下圖所示。
常見問題及解決方法
1,問題
>MyProject3.obj : error LNK2019: 無法解析的外部符號 _mysql_init@4,函數 _main 中引用了該符號
>MyProject3.obj : error LNK2019: 無法解析的外部符號 _mysql_real_connect@32,函數 _main 中引用了該符號
>E:\MySQL\mysql-8.0.26-winx64\lib\libmysql.lib : warning LNK4272: 庫計算機類型“x64”與目標計算機類型“x86”沖突
>D:\ProgramData\source\repos\MySolution\Debug\MyProject3.exe : fatal error LNK1120: 2 個無法解析的外部命令
解決辦法:這是因為數據庫為X86架構的64位擴展(x86_64),其本質為64位,而我們的調試的平台使用的為X86(32位),這就造成了不兼容的問題,當我們在項目屬性頁設置的時候就應該將調試的平台改為位數據庫對應的平台。這樣編譯就沒有問題了
數據庫的位數:
屬性頁的平台: