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

C++ - 连接mysql数据库

时间:2023-06-28 11:23:35浏览次数:50  
标签:lib 数据库 mysql C++ libmysql MySQL include 目录

1. 准备工作

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

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

我安装MySQL的路径:C:\Program Files\MySQL\MySQL Server 5.7\lib

 

1.2 添加 libmysql.lib 


 

1.3 添加 include目录

我的这个路径是:C:\Program Files\MySQL\MySQL Server 5.7\include 

 

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

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

 

 

 

1.4 包含mysql头文件

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

#include <mysql.h> 

 

1.5 代码准备

#include <stdio.h>
#include <stdlib.h>
#include <mysql.h>
 
 
void test();
 
int main()
{
	cout << "main" << endl;
 
	test();
	getchar();
	return 0;
}
 
void test() 
{
	MYSQL m;        //mysql连接
	MYSQL_RES* res; //查询结果集
	MYSQL_ROW row;  //二维数组,存放数据
 
	//初始化数据库
	mysql_init(&m);
 
	//设置编码方式
	mysql_options(&m, MYSQL_SET_CHARSET_NAME, "gbk");
 
	//连接数据库
	if (mysql_real_connect(&m, "localhost", "root", "111111", "c",      3306, NULL, 0))
	{                           //主机       用户名   密码      数据库名  端口
		printf("数据库连接成功\n");
	}
	else {
		printf("数据库连接失败:%s \n", mysql_error(&m));
		//输出错误信息
	}
}

 

 

1.6 报错问题

如果报无法解析的外部符号时,我们要把x86的改成x64 ,就是要和mysql的位数一样,我的mysql是64位的所以创建的项目也要改成64位的工程。

 

改成64位后编译+运行:

 

 

 

————————————————
版权声明:本文为CSDN博主「哎呀是小张啊」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/qq_53362595/article/details/126425815

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

相关文章

  • 数据库基础知识
    数据库设计范式:第一范式每一列不能在进行换划分,第二范式每一张表都有自己的使命,且做的事相近。https://www.cnblogs.com/zl181015/p/9242699.html 查询执行顺序:from->on->join->where->groupby->having->count(聚合函数)->select->distinct->orderby->......
  • 解决:远程连接mysql:报异常,1044 - Access denied for user ‘root‘@‘%‘ to database
    Navicat报错:使用Navicat远程连接,Docker中的mysql5.6时报异常,:1044-Accessdeniedforuser'root'@'%'todatabase'xxx'问题原因:(1)根本原因:远程连接用户权限不足!(2)直接原因:应该是创建远程连接用户‘root@%’时,没有添加访问数据库的权限。解决办法:#这里为刚才创建的root@......
  • C++ summary
    结构体和变量C++不提倡使用外部声明的变量,但是提倡使用外部声明的结构体。在外部声明符号常量更合理。符号常量编译后在代码区,不可更改,不可寻址是指令的一部分#define标识符常量enum{};consttypeA=B;结构体初始化={}且等号不必须不允许缩窄转换(宽字节赋......
  • 一文总结高并发大数据量下MySQL开发规范【军规】
    在互联网公司中,MySQL是使用最多的数据库,那么在并发量大、数据量大的互联网业务中,如果高效的使用MySQL才能保证服务的稳定呢?根据本人多年运维管理经验的总结,梳理了一些基础的开发规范,希望能给大家带来一些帮助。一、基础规范数据库字符集默认使用utf8mb4,兼容utf8,并支持存储emoji......
  • ① Oracle数据库有多个实例,并且不知道sys密码情况下如何更新密码
    ①Oracle数据库有多个实例,并且不知道sys密码情况下如何更新密码sqlplus/@orclassysdba--@orcl是实例名②修改sys密码alterusersysidentifiedby123456;......
  • C++中cout打印内容丢失
    原文地址:https://www.cnblogs.com/liqinglucky/p/cout.html写代码时遇到C++中cout打印不全的问题。现象代码调整前:我有个函数c_func(output,input,inlen)定义在原来的文件file.c里,然后在c++中调用了这个函数。file.cpp文件里的调用格式如下:cpp_func(){ c_func(output......
  • C++面试八股文:static_cast了解一下?
    C++面试八股文:static_cast了解一下?某日二师兄参加XXX科技公司的C++工程师开发岗位第20面:面试官:C++中支持哪些类型转换?二师兄:C++支持C风格的类型转换,并在C++11引入新的关键字规范了类型转换。二师兄:C++11引入四种新的类型转换,分别是static_cast、dynamic_cast、const_cast......
  • 闪回数据库的应用场景和测试
    如果是用户主生产环境,通常不会有用户会开启这个功能。但如果是在ADG备库端,就会有不少客户选择开启这个功能,这可以有效补充误操作应急处置方法。今天给某客户做技术支持的时候,在现场遇到一个蛮有意思的问题:XTTS测试场景,库非常大,数据文件很多,远超db_files的默认值。在表空间元数......
  • C++面试八股文:用过std::set/std::map吗?
    某日二师兄参加XXX科技公司的C++工程师开发岗位第27面:面试官:用过std::set/std::map吗?二师兄:用过。面试官:能介绍一下二者吗?二师兄:std::set是一个有序的集合,其中的元素是唯一的,即每个元素只能出现一次。一般用于去重和自动排序。二师兄:std::map同样是有序组合,只不过它不止有ke......
  • #yyds干货盘点#线上MySQL的自增id用尽处理
    MySQL的自增id都定义了初始值,然后不断加步长。虽然自然数没有上限,但定义了表示这个数的字节长度,计算机存储就有上限。比如,无符号整型(unsignedint)是4个字节,上限就是2^32-1。那自增id用完,会怎么样?表定义自增值id表定义的自增值达到上限后的逻辑是:再申请下一个id时,得到的值保持不......