今天刚学习了MySQL,于是去尝试能否让C/C++连接上MySQL,一番尝试后也是成功了,把经验分享给大家!
1.首先我们需要找到MySQL所在的目录下,一般默认安装路径都在C:\Program Files\MySQL\MySQL Server 8.0下;
2.随后我们打开Visual Studio,新建一个空的项目或者控制台应用(前者需要自己建头文件和源文件,后者会自动生成一个项目名.cpp):
3.将上面的x86改成x64:
4.鼠标右击解决方案资源管理器里的mysql,选择属性栏:
5.在其中的vc++目录里的包含目录改成mysql文件中的include文件所在位置,依次点击:
6.在其中的vc++目录里的库目录改成mysql文件中的lib文件所在位置:
7.向链接器的输入里的附加依赖项添加mysql文件中的libmysql.lib,不要写路径,注意,这里直接把libmysql.lib这个依赖名加进去即可,不要加路径。
8.接下来有两种方法,一是把mysql安装目录里的lib\libmysql.dll复制到c:\windows\system32下,但我没有成功,这可能会导致无法解析的外部符号等问题,另一种方法就是将libmysql.lib复制到你的这个项目文件夹下
9.我在网上找到了一段代码,大家拿去运行,能成功则说明没问题了!
#include<mysql.h>
#include<stdio.h>//mysql 文件
int main()
{
MYSQL mysql;//数据库句柄
MYSQL_RES* res;//查询结果集
MYSQL_ROW row;//记录结构体
//初始化数据库
mysql_init(&mysql);
//设置字符编码
mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "gbk");
//连接数据库
//这里需要输入自己的本机名和密码,若全为默认,只需更改*处为自己的密码以及”xsgl“处改成自己创建的数据库即可
if (mysql_real_connect(&mysql, "127.0.0.1", "root",
"******", "xsgl", 3306, NULL, 0) == NULL) {
printf("错误原因: %s\n", mysql_error(&mysql));
printf("连接失败!\n");
exit(-1);
}
//查询数据
//student为xsgl数据库中存在的表
int ret = mysql_query(&mysql, "select * from student;");
printf("ret: %d\n", ret);
//获取结果集
res = mysql_store_result(&mysql);
//给ROW赋值,判断ROW是否为空,不为空就打印数据。
while (row = mysql_fetch_row(res))
{
printf("%s ", row[0]);//学号
printf("%s ", row[1]);//姓名
printf("%s ", row[2]);//性别
printf("%s ", row[3]);//年龄
printf("%s \n", row[4]);//籍贯
}
//释放结果集
mysql_free_result(res);
//关闭数据库
mysql_close(&mysql);
system("pause");
return 0;
}