日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

vs 中使用32 位mysql_vs2010连接mysql数据库(含win32和x64两种平台)

發布時間:2025/3/12 数据库 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vs 中使用32 位mysql_vs2010连接mysql数据库(含win32和x64两种平台) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

數據庫安裝: 此處有兩種安裝方式,第一種使用xxx.msi圖形化安裝方式,和普通的exe軟件安裝方式一樣,按照默認選項一直下一步就可以。mysql下載地址為http://dev.mysql.com/downloads/windows/installer/ 第二種是在mysql官網下載zip壓縮包,解壓開了就是一

數據庫安裝:

此處有兩種安裝方式,第一種使用xxx.msi圖形化安裝方式,和普通的exe軟件安裝方式一樣,按照默認選項一直下一步就可以。mysql下載地址為http://dev.mysql.com/downloads/windows/installer/

第二種是在mysql官網下載zip壓縮包,解壓開了就是一個文件夾。zip包下載地址為:http://dev.mysql.com/downloads/mysql/

根據自己的電腦操作系統位數選擇相應的版本,否則到時vs鏈接過不了。

本文只說明第二種安裝方式。

1.將mysql-5.6.14-winx64.zip解壓縮到C:\mysql目錄下,也可以是其它目錄,自己隨意。進入到C:\mysql\mysql-5.6.14-winx64目錄,看到有很多個.ini文件,這個就是數據庫的配置文件,不同類型的數據庫對應一個.ini文件,你可以設定端口

字符集等等,修改完了之后將文件命名為my.ini,這樣mysql server就能識別了。不過如果你沒有特殊需要,這個文件是可以不用動的,刪除了也可以,所有的配置項mysql自己都有默認值的。

2.運行欄輸入cmd,進入命令界面,cd C:\mysql\mysql-5.6.14-winx64\bin,這里放著mysqld.exe命令

將mysql增加到系統服務中:運行命令mysqld

--install 或者 mysqld --installmysql

3.啟動mysql服務端:net start mysql (必須啟動著

vs才能連接上來,要是數據庫連接失敗請查看mysql服務是否啟動)

4.使用系統管理員身份運行在命令行運行:mysql

-uroot 進入之后就可以執行相關的數據庫命令了,若只是以mysql進入,則很多命令執行不了,必須以root用戶進入,這里沒有密碼

5.不想使用數據庫了就關掉mysql服務,免得占用內存:net

stop mysql

刪除mysql服務:mysqld

--remove mysql

接下來對如何使用MySql的API連接MySql數據庫,開發環境為VS2010.

一、VS2010工程設置工作(win32下)

1.首先,建立一個windows應用程序的工程,將項目-->xx屬性(xx為自己取的名字)-->配置屬性-->C/C++->預處理器->預處理器定義下的_WINDOWS改為_CONSOLE,默認一般已經這樣了

2.鏈接器->系統->子系統 選擇為控制臺。默認已經這樣的就不用動

由于我們要使用Mysql的API,并且我們機子上肯定安裝了Mysql數據庫,所以我們要將工程的頭文件路徑指向Mysql安裝目錄的同文件mysql.h所在的位置,將連接庫路徑指向libmysql.lib所在的路徑,

在我的機子上,Mysql 的安裝路徑為:C:\mysql\mysql-5.6.14-winx64\include,C:\mysql\mysql-5.6.14-winx64\lib和下面圖片不符,自己找自己的目錄

高版本的mysql可能沒有opt這個目錄層次了,只要找到libmysql.lib這個目錄就行

我們需要把VS2008的工程中的頭文件路徑和連接庫路徑指向上面的兩個地方:

將x項目屬性頁的C/C++->常規->附加包含目錄指向:C:\mysql\mysql-5.6.14-winx64\include

將項目屬性頁的鏈接器->常規->附加庫目錄指向:C:\mysql\mysql-5.6.14-winx64\lib

將鏈接器->輸入->附加依賴項中添加libmysql.lib。

如果不設置鏈接器->輸入->附加依賴項中添加libmysql.lib,那么會出現如下的錯誤:

1>------ 已啟動全部重新生成: 項目: MySql-Connect, 配置: Debug Win32 ------

1>正在刪除項目“MySql-Connect”(配置“Debug|Win32”)的中間文件和輸出文件

1>正在編譯...

1>MySql_Connect.cpp

1>x:\編程練習\c-c++\c\mysql_connect.cpp(35) : warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

1> d:\program files\microsoft visual studio 9.0\vc\include\stdio.h(306) : 參見“scanf”的聲明

1>x:\編程練習\c-c++\c\mysql_connect.cpp(72) : warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

1> d:\program files\microsoft visual studio 9.0\vc\include\stdio.h(366) : 參見“sprintf”的聲明

1>x:\編程練習\c-c++\c\mysql_connect.cpp(86) : warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

1> d:\program files\microsoft visual studio 9.0\vc\include\stdio.h(366) : 參見“sprintf”的聲明

1>正在編譯資源清單...

1>Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1

1>Copyright (C) Microsoft Corporation. All rights reserved.

1>正在鏈接...

1>LINK : 沒有找到 d:\我的文檔\Visual Studio 2008\Projects\MySql-Connect\Debug\MySql-Connect.exe 或上一個增量鏈接沒有生成它;正在執行完全鏈接

1>MySql_Connect.obj : error LNK2019: 無法解析的外部符號 _mysql_close@4,該符號在函數 _main 中被引用1>MySql_Connect.obj : error LNK2019: 無法解析的外部符號 _mysql_free_result@4,該符號在函數 _main 中被引用

1>MySql_Connect.obj : error LNK2019: 無法解析的外部符號 _mysql_num_fields@4,該符號在函數 _main 中被引用

1>MySql_Connect.obj : error LNK2019: 無法解析的外部符號 _mysql_fetch_row@4,該符號在函數 _main 中被引用

1>MySql_Connect.obj : error LNK2019: 無法解析的外部符號 _mysql_store_result@4,該符號在函數 _main 中被引用

1>MySql_Connect.obj : error LNK2019: 無法解析的外部符號 _mysql_error@4,該符號在函數 _main 中被引用

1>MySql_Connect.obj : error LNK2019: 無法解析的外部符號 _mysql_real_query@12,該符號在函數 _main 中被引用

1>MySql_Connect.obj : error LNK2019: 無法解析的外部符號 _mysql_select_db@8,該符號在函數 _main 中被引用

1>MySql_Connect.obj : error LNK2019: 無法解析的外部符號 _mysql_real_connect@32,該符號在函數 _main 中被引用

1>MySql_Connect.obj : error LNK2019: 無法解析的外部符號 _mysql_init@4,該符號在函數 _main 中被引用

1>d:\我的文檔\Visual Studio 2008\Projects\MySql-Connect\Debug\MySql-Connect.exe : fatal error LNK1120: 10 個無法解析的外部命令

1>生成日志保存在“file://d:\我的文檔\Visual Studio 2008\Projects\MySql-Connect\MySql-Connect\Debug\BuildLog.htm”

1>MySql-Connect - 11 個錯誤,3 個警告

========== 全部重新生成: 成功 0 個,失敗 1 個,跳過 0 個 ==========

到此處,win32平臺已經配置好,可以打開vs寫代碼連接數據庫了,但是x64平臺上鏈接時總是會有以下錯誤:這是我遇到的問題

error LNK2019: 無法解析的外部符號 _mysql_real_connect@32,該符號在函數 _main 中被引用

error LNK2019: 無法解析的外部符號 _mysql_query@8,該符號在函數 _main 中被引用

error LNK2019: 無法解析的外部符號 _mysql_init@4,該符號在函數 _main 中被引用

error LNK2019: 無法解析的外部符號 _mysql_close@4,該符號在函數 _main 中被引用

后來一想我裝的是win7

64位啊,MySQL也是赤裸裸的64位,我用WIN32 項目搞毛線。于是有一個猜想就是,MySQL 64位的lib也是64位的接口。

于是:項目-->xx屬性(xx為自己取的名字)--》配置管理器-->活動解決方案平臺

下拉后點擊新建,會出現自動填寫x64,下面一欄不用動,然后將平臺改為x64,既可以完成編譯鏈接。

以下是一個簡單的例子源代碼:工程類型是最簡單的windows控制臺程序:

//

data_use.cpp : 定義控制臺應用程序的入口點。

//

#include "stdafx.h"

#include #include #include #include #pragma comment (lib, "libmysql.lib")

#pragma comment (lib, "mysqlclient.lib")

int main(int argc, _TCHAR* argv[])

{

MYSQL mysql; //數據庫連接句柄

MYSQL_RES *res;

MYSQL_ROW row;

mysql_init (&mysql);

//先要在mysql中創建出數據庫mydb和表mytable來,進入數據庫:mysql -uroot

//若只是輸入mysql進去,會執行不了創建表等命令,mysql的客戶端工具很多,可以選擇navicat

//若用c++連接數據庫,可以考慮Mysql++ ,它提供了很多封裝好的接口,避免了下面這樣的手工方式寫sql語句,這樣很容易出錯

int errorcode;

//連接數據庫

if(mysql_real_connect(&mysql,"localhost","root",NULL,"mydb",3306,NULL,0))

{

printf("connect to database successfully!\n");

//構造SQL語句

char *deleted = "delete from mytable where username='xww'";

if(errorcode = mysql_real_query(&mysql,deleted,(unsigned int)strlen(deleted)))

{

//錯誤代碼始終為1,表示false。一般情況下肯定是sql語句寫錯了,復制該sql語句到mysql命令行里面去執行一遍

printf("deleted fails. error code is %d \n",errorcode);

}

char *insert = "insert into mytable(username,visitelist,remark)values('xww','hz','s')";

if(mysql_real_query(&mysql,insert,(unsigned int)strlen(insert)))

{

printf("insert fails\n");

}

char *query = "select * from mytable";

if(errorcode = mysql_real_query(&mysql,query,(unsigned int)strlen(query)))

{

printf("query fails,errorcode is %d\n",errorcode);

}

else

{

printf("[%s] result is:\n", query);

res = mysql_store_result(&mysql);

while(row = mysql_fetch_row(res))

{

for(int t=0;t{

printf("%s ",row[t]);

}

printf("\n");

}

}

}

else

{

printf("connect to sql fail!\n");

}

return 0;

}

/*用到以下mysql的API:

mysql_init()

mysql_real_connect()

mysql_real_query()

mysql_store_result()

mysql_fetch_row()

mysql_free_result()

mysql_close()

操作中需要用到mysql中定義的三個結構體

MYSQL

MYSQL_RES

MYSQL_ROW

一般步驟是:

1.調用mysql_init()初始化MYSQL結構,許多的函數執行需要這個結構體。

2.調用mysql_real_connect()連接數據庫,參數中涉及到數據庫名,數據庫登錄名,數據庫密碼等等。

3.調用mysql_real_query()執行一條Select SQL語句,通過mysql_store_result()的返回值獲得Select的結果,返回的結果就是一個MYSQL_RES結構的指針。

4.調用mysql_fetch_row()獲得一條記錄,函數的返回值是MYSQL_ROW對象,這是一個char二維數組。獲取一條記錄以后,mysql_fetch_row會將游標自動向下移動一條記錄。

5.調用mysql_free_result()釋放結果資源,調用mysql_close關閉連接。*/

本條技術文章來源于互聯網,如果無意侵犯您的權益請點擊此處反饋版權投訴

本文系統來源:php中文網

總結

以上是生活随笔為你收集整理的vs 中使用32 位mysql_vs2010连接mysql数据库(含win32和x64两种平台)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。