Rumah pangkalan data tutorial mysql vs2010连接mysql数据库(含win32和x64两种平台)

vs2010连接mysql数据库(含win32和x64两种平台)

Jun 07, 2016 pm 03:40 PM
mysql vs2010 win32 pangkalan data menyambung

数据库安装: 此处有两种安装方式,第一种使用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 --install mysql

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,默认一般已经这样了

vs2010连接mysql数据库(含win32和x64两种平台)

2.链接器->系统->子系统 选择为控制台。默认已经这样的就不用动

vs2010连接mysql数据库(含win32和x64两种平台)

由于我们要使用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这个目录就行

vs2010连接mysql数据库(含win32和x64两种平台)

vs2010连接mysql数据库(含win32和x64两种平台)

我们需要把VS2008的工程中的头文件路径和连接库路径指向上面的两个地方:

 

 

将x项目属性页的C/C++->常规->附加包含目录指向:C:\mysql\mysql-5.6.14-winx64\include

vs2010连接mysql数据库(含win32和x64两种平台)

 

将项目属性页的链接器->常规->附加库目录指向:C:\mysql\mysql-5.6.14-winx64\lib

vs2010连接mysql数据库(含win32和x64两种平台)

将链接器->输入->附加依赖项中添加libmysql.lib。

vs2010连接mysql数据库(含win32和x64两种平台)

如果不设置链接器->输入->附加依赖项中添加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关闭连接。*/




Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

MySQL: Pengenalan kepada pangkalan data paling popular di dunia MySQL: Pengenalan kepada pangkalan data paling popular di dunia Apr 12, 2025 am 12:18 AM

MySQL adalah sistem pengurusan pangkalan data relasi sumber terbuka, terutamanya digunakan untuk menyimpan dan mengambil data dengan cepat dan boleh dipercayai. Prinsip kerjanya termasuk permintaan pelanggan, resolusi pertanyaan, pelaksanaan pertanyaan dan hasil pulangan. Contoh penggunaan termasuk membuat jadual, memasukkan dan menanyakan data, dan ciri -ciri canggih seperti Operasi Join. Kesalahan umum melibatkan sintaks SQL, jenis data, dan keizinan, dan cadangan pengoptimuman termasuk penggunaan indeks, pertanyaan yang dioptimumkan, dan pembahagian jadual.

Tempat Mysql: Pangkalan Data dan Pengaturcaraan Tempat Mysql: Pangkalan Data dan Pengaturcaraan Apr 13, 2025 am 12:18 AM

Kedudukan MySQL dalam pangkalan data dan pengaturcaraan sangat penting. Ia adalah sistem pengurusan pangkalan data sumber terbuka yang digunakan secara meluas dalam pelbagai senario aplikasi. 1) MySQL menyediakan fungsi penyimpanan data, organisasi dan pengambilan data yang cekap, sistem sokongan web, mudah alih dan perusahaan. 2) Ia menggunakan seni bina pelanggan-pelayan, menyokong pelbagai enjin penyimpanan dan pengoptimuman indeks. 3) Penggunaan asas termasuk membuat jadual dan memasukkan data, dan penggunaan lanjutan melibatkan pelbagai meja dan pertanyaan kompleks. 4) Soalan -soalan yang sering ditanya seperti kesilapan sintaks SQL dan isu -isu prestasi boleh disahpepijat melalui arahan jelas dan log pertanyaan perlahan. 5) Kaedah pengoptimuman prestasi termasuk penggunaan indeks rasional, pertanyaan yang dioptimumkan dan penggunaan cache. Amalan terbaik termasuk menggunakan urus niaga dan preparedStatemen

Mengapa menggunakan mysql? Faedah dan kelebihan Mengapa menggunakan mysql? Faedah dan kelebihan Apr 12, 2025 am 12:17 AM

MySQL dipilih untuk prestasi, kebolehpercayaan, kemudahan penggunaan, dan sokongan komuniti. 1.MYSQL Menyediakan fungsi penyimpanan dan pengambilan data yang cekap, menyokong pelbagai jenis data dan operasi pertanyaan lanjutan. 2. Mengamalkan seni bina pelanggan-pelayan dan enjin penyimpanan berganda untuk menyokong urus niaga dan pengoptimuman pertanyaan. 3. Mudah digunakan, menyokong pelbagai sistem operasi dan bahasa pengaturcaraan. 4. Mempunyai sokongan komuniti yang kuat dan menyediakan sumber dan penyelesaian yang kaya.

Cara menyambung ke pangkalan data Apache Cara menyambung ke pangkalan data Apache Apr 13, 2025 pm 01:03 PM

Apache menyambung ke pangkalan data memerlukan langkah -langkah berikut: Pasang pemacu pangkalan data. Konfigurasikan fail web.xml untuk membuat kolam sambungan. Buat sumber data JDBC dan tentukan tetapan sambungan. Gunakan API JDBC untuk mengakses pangkalan data dari kod Java, termasuk mendapatkan sambungan, membuat kenyataan, parameter mengikat, melaksanakan pertanyaan atau kemas kini, dan hasil pemprosesan.

Cara Memulakan MySQL oleh Docker Cara Memulakan MySQL oleh Docker Apr 15, 2025 pm 12:09 PM

Proses memulakan MySQL di Docker terdiri daripada langkah -langkah berikut: Tarik imej MySQL untuk membuat dan memulakan bekas, tetapkan kata laluan pengguna root, dan memetakan sambungan pengesahan port Buat pangkalan data dan pengguna memberikan semua kebenaran ke pangkalan data

CentOS memasang MySQL CentOS memasang MySQL Apr 14, 2025 pm 08:09 PM

Memasang MySQL pada CentOS melibatkan langkah -langkah berikut: Menambah sumber MySQL YUM yang sesuai. Jalankan YUM Pasang Perintah MySQL-Server untuk memasang pelayan MySQL. Gunakan perintah mysql_secure_installation untuk membuat tetapan keselamatan, seperti menetapkan kata laluan pengguna root. Sesuaikan fail konfigurasi MySQL seperti yang diperlukan. Tune parameter MySQL dan mengoptimumkan pangkalan data untuk prestasi.

Cara Memasang MySQL di CentOS7 Cara Memasang MySQL di CentOS7 Apr 14, 2025 pm 08:30 PM

Kunci untuk memasang MySQL dengan elegan adalah untuk menambah repositori MySQL rasmi. Langkah -langkah khusus adalah seperti berikut: Muat turun kekunci GPG rasmi MySQL untuk mencegah serangan pancingan data. Tambah fail repositori MySQL: rpm -uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm kemas kini yum repository cache: yum update mysql: yum pemasangan mysql-server mysql Server.

Sandaran automatik navicat data mysql Sandaran automatik navicat data mysql Apr 11, 2025 pm 05:30 PM

Langkah -langkah untuk menyokong data MySQL secara automatik menggunakan Navicat: Pasang dan sambungkan ke pelayan MySQL. Buat tugas sandaran, menentukan sumber sandaran, lokasi fail, dan nama. Konfigurasikan pilihan sandaran, termasuk jenis sandaran, kekerapan, dan masa pengekalan. Sediakan pelan sandaran automatik, aktifkan sandaran automatik, tetapkan masa dan kekerapan. Pratonton tetapan sandaran dan lakukan sandaran. Memantau kemajuan dan sejarah sandaran.

See all articles