今天刚学习了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.dll复制到你的这个项目文件夹下
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;
}