VS2019連接MySQL數據庫的過程及常見問題總結
今天下午開始配置各種環境,想著VS2019可以配合MySQL一起使用。中間出瞭不少錯誤,晚上九點左右配置成功如下圖所示:
接下來說說具體步驟:
(1)首先準備好VS2019和MySQL的軟件,各自官網都有,這裡不再贅述;
(2)找到MySQL的安裝目錄,如圖,找到這兩個文件夾。
(3)新建一個工程後再新建一個main.cpp文件,為下面的配置環境做準備。
(4)打開項目屬性,點擊VC++目錄,在包含目錄中,將MySQL安裝目錄中的include文件路徑添加到這裡,如下圖所示:
(5)在屬性頁上,打開C/C++,選擇常規,步驟同上,在附加包含目錄中將MySQL文件中的include文件路徑添加進去;
(6)繼續在屬性頁上,點開鏈接器選項,點擊常規,將MySQL安裝目錄下的lib路徑拷貝到附加庫目錄中;
(7)繼續在屬性頁的鏈接器中,點擊輸入選項,將libmysql.lib文件加進去,註意的是,隻需要拷貝libmysql.lib這個名稱即可,不需要添加路徑。同樣,這文件也在mydql安裝文件夾中lib目錄下:
(8)查看屬性頁上方的平臺,選擇x64,x32可能會出錯
(9)把MySQL安裝目錄下的bin\libmysql.dll復制到c:\windows\system32下:
這部安裝完成後,可以編寫測試代碼瞭。測試代碼如下:
#include <stdio.h> #include <iostream> #include "my_global.h" #include "mysql.h" using namespace std; int main() { cout << "hello world!" << endl; MYSQL mysql; MYSQL_RES* res; MYSQL_ROW row; mysql_init(&mysql); mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "gbk"); //註意:參數一定要對上。 //第二個參數為主機地址localhost,第三個參數為用戶名 //第四個參數為用戶密碼,第五個參數為連接的數據庫 //第六個參數為MySQL的端口號3306 if (mysql_real_connect(&mysql, "localhost", "root", "123456", "myemployees", 3306, NULL, 0) == NULL) { cout << (mysql_error(&mysql)); } mysql_query(&mysql, "SELECT * from myemployees.employees"); res = mysql_store_result(&mysql); //顯示數據 //給ROW賦值,判斷ROW是否為空,不為空就打印數據。 while (row = mysql_fetch_row(res)) { printf("%s ", row[0]);//打印ID printf("%s ", row[1]);//打印ID cout << endl; } //釋放結果集 mysql_free_result(res); //關閉數據庫 mysql_close(&mysql); //停留等待 getchar(); system("pause"); return 0; }
運行過程中,如果出現瞭如下圖所示的錯誤,則需要進行排查配置環境變量的問題。
1、項目右鍵屬性,檢查一下VC++目錄配置;
2、檢查鏈接器中的輸入選項
(3)我把這“libmysql.dll 和 libmysql.lib”文件放在項目裡的.cpp文件夾下。
這三步可以檢查具體大部分的問題。
一定要註意的是MySQL的參數不要寫錯,寫錯有時會出現如下Access denied for user ‘ODBC’@’localhost’ (using password: NO),可以去mysql的bin目錄下輸入命令:
mysql -u root -p,檢查數據庫用戶名,密碼啥的是否錯誤。正確輸入如下圖所示:
到此這篇關於VS2019連接MySQL數據庫的常見問題總結的文章就介紹到這瞭,更多相關VS2019連接MySQL數據庫內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- MySQL系列教程之使用C語言來連接數據庫
- 解決mysql:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO/YES)
- MySQL8.0+版本1045錯誤的問題及解決辦法
- MySQL8.0.23版本的root密碼重置最優解法
- 全面分析MySQL ERROR 1045出現的原因及解決