首页 > 数据库 >C++ - 连接mysql数据库

C++ - 连接mysql数据库

时间:2023-10-11 17:11:20浏览次数:44  
标签:lib 数据库 C++ libmysql mysql include 目录

1. 准备工作

1.1 把 libmysql.dlllibmysql.lib 文件复制到工程目录下

首先,我们要找到刚刚开始下载的 MySQL数据库 的安装目录,打开目录,并且将 libmysql.dll文件 和 libmysql.lib文件 复制到工程目录下~

我安装MySQL的路径:E:\mysql-5.7.42-winx64\lib

把 libmysql.dll文件 和 libmysql.lib文件 复制到工程目录下

 

1.2 添加 libmysql.lib 

选择属性 右键,选择 C/C++->链接器->输入->附加依赖项,同时进行编辑

 

1.3 添加 include目录

我的这个路径是:E:\mysql-5.7.42-winx64\include

 

来到 VS2019 页面,和上述操作一样~

右键MySQL工程,选择属性 右键,选择 C/C++->常规->附加包含目录,同时进行编辑,将刚刚复制的 include路径 给粘贴上去~

 

 

1.4 包含mysql头文件

接下来 在VS2019里面,先后敲出代码:

#include <mysql.h> 

 

1.5 代码准备

添加以下代码后编译+运行,调试运行结果

#include <stdio.h>
#include <stdlib.h>
#include <mysql.h>


int main()
{

	//固定不变的
	MYSQL mysql;    //一个数据库结构体  
	MYSQL_RES* res; //一个结果集结构体
	MYSQL_ROW row; //char** 二维数据,存放一条条记录

	//初始化数据库
	mysql_init(&mysql);

	//设置编码方式
	mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "gbk");

	//连接数据库                    //ip地址	   //用户名 //密码       //数据库名
	if (mysql_real_connect(&mysql, "localhost", "root", "123456", "test", 3306, NULL, 0))
	{
		printf("数据库连接成功!\n");
	}
	else
	{
		printf("错误原因:%s\n", mysql_error(&mysql));
		printf("数据库连接失败!\n");
		exit(-1);
	}
	return 0;
}

 

 

1.6 报错问题

报错原因是:vs项目和msql不兼容

当vs的工程项目加载了libmysql.lib报了无法解析的外部符号时,即:附加包含目录,附加依赖项都设置好之后,如过编译出现如下:

 

这时需要要把项目改成64位的 ,就是要和mysql的位数一样,我的mysql是64位的所以创建的项目也要64位的。

把项目改成64位的之后编译+运行:

 

标签:lib,数据库,C++,libmysql,mysql,include,目录
From: https://www.cnblogs.com/zhuchunlin/p/17757675.html

相关文章

  • C++ - 操作mysql数据库
    操作数据库的案例#include<stdio.h>#include<stdlib.h>#include<mysql.h>//固定不变的MYSQLmysql;//一个数据库结构体MYSQL_RES*res;//一个结果集结构体MYSQL_ROWrow;//char**二维数据,存放一条条记录voidconnect();//连接数据库voidinsert();//插入......
  • 019 数据库学习笔记--代码生成工具(满满的成产力)
    -------------------------------生成实体类-------------------------------declare@TableNamesysname='ViewQualityInfo'declare@TableNameLsysname='viewQualityInfo'declare@Resultvarchar(max)='///<summary>///'......
  • MySQL优化
    1.性能优化:1.1表结构优化(下述建议针对数据量巨大,每一点空间都需要节省的情况,当然在设计初期能考虑到以下建议最好)A:字段设计优化1.1.1整数类型:  1.对于整数int类型,数据量较大的情况下建议区分tinyint,int,bigint,三者所占据的空间有很大的......
  • mysql 删除数组 json 字段中的某个指定值
    例:SELECTcar_imgFROMlogistics_car_infoWHEREcar_id=2--结果为:["1","2","3","4"]SELECTJSON_SEARCH(car_img,'one','4')FROMlogistics_car_infoWHEREcar_id=2--结果为:"$[3]"SELE......
  • MySQL的行锁和表锁机制
    一、引言​ 在数据库管理系统中,锁是用来控制对数据的访问的机制。MySQL既支持行级锁(Row-levelLocking),也支持表级锁(Table-levelLocking)。​ MySQL引擎中,MyISAM不支持行锁,而InnoDB支持行锁和表锁。二、行锁(Row-levelLocking)​ 行锁是指对数据表中的一行记录进行锁定,其他事......
  • mysql 中 timestampdiff 一个让人费解的问题
    取当前时间 使用上面取到的时间与now()使用timestampdiff进行month级别比较 将上面取到的日期递增一个月再次比较 结果让人很费解 在此给自己提个醒,mysql单纯使用日期还是用 current_date吧......
  • 在Ubuntu22.04上安装MySQL-Server,并配置可视化界面SQL-Workbench
    在Ubuntu22.04上安装MySQL-Server,并配置可视化界面MySQL-Workbench彻底删除MySQL若您是首次,在Ubuntu22.04上崭新安装mysql,可以略过该步。首先卸载mysql-common:sudoapt-getremovemysql-common然后卸载已经安装的mysql-server:sudoapt-getautoremove--purgemysql-ser......
  • WebAssembly C++开发环境搭建
    WebAssembly开发环境搭建简介WebAssembly是一种新的编码方式,可以在现代的网络浏览器中运行-它是一种低级的类汇编语言,具有紧凑的二进制格式,可以接近原生的性能运行,并为诸如C/C++等语言提供一个编译目标,以便它们可以在Web上运行。它也被设计为可以与JavaScript共存,允许两......
  • c++编译报错解决办法
    所有的警告都被当作是错误在全局域:cc1plus:错误:unrecognizedcommandlineoption‘-Wno-unknown-warning’[-Werror]cc1plus:所有的警告都被当作是错误解决办法:去除CMakeLists.txt中的-Werror......
  • mysql插入数据时遇到的问题
    1、 Illegalmixofcollations(latin1_swedish_ci,IMPLICIT)and(utf8mb4_general_ci,COERCIBLE)foroperation'=' 解决:原因:因为新创建的表字符集是latin1_swedish_ci,而原有的字符集需要utf8mb4_general_ci,所以报错。ALTERTABLE表名CONVERTTOCHARACTER......