c++配置链接mysql
一、环境安装
1.Mysql 8.0
2.Microsoft Visual Studio 2017
下载mysql库:
从这位博主的网盘获取动态链接库:
32位/64位 libmysql.dll和libmysql.lib下载_libmysql.dll下载_不吃水果的太空人的博客-CSDN博客
二、环境配置
1.检查Mysql 8.0的安装文件夹中是否包含include和lib文件夹,若不存在,需要重新安装
2.在项目属性中配置相关配置(主要配置头文件路径,链接库路径)
1)配置头文件include目录
将[c/c++]中的[常规]的[附加包含目录]追加为include文件夹地址
2)配置链接库
a. 将[链接器]下的[常规]中的[附加库目录]改为lib文件夹地址
b. 将[链接器]下的[输入]中的[附加依赖项]改为libmysql.lib的地址
3)根据自己的系统位数(64/32)添加libmysql.dll:(把libmysql.dll放到cpp同目录下,病解决一些报错)
a.在Mysql 8.0的安装文件夹中打开bin,复制libcrypto-1_1-x64.dll和libssl-1_1-x64.dll两个动态链接库,粘贴到system32文件夹中
注意:
以64位为例,把下载好的64位dll放到system32文件夹(存放64位文件),把32位dll放到sysWOW64文件夹(存放32位文件)
b.把64位libmysql.dll放到cpp同目录下(如果放到其他目录,需要在项目属性中设置)
三、编写程序
#include <iostream> using namespace std; #include <mysql.h> int main() { cout << " std "; char host[10] = "localhost";//端口号 char user[10] = "root";//用户 char password[10] = "89757";//密码 char database[10] = "mysql";//数据库 MYSQL* conn;//设置数据库连接上下文 mysql_library_init(0,0,0); conn = mysql_init(NULL);//初始化连接句柄 /*MYSQL conn; mysql_init(&conn);*/ if (!conn) { puts("初始化失败!"); return EXIT_FAILURE; //exit(1); } //设定超时3秒提示 int to = 3; int re = mysql_options(conn,MYSQL_OPT_CONNECT_TIMEOUT,&to); if ( re != 0 ) { cout << "mysql_opt failed:" << mysql_error(conn) <<endl; } conn = mysql_real_connect(conn, host, user, password, database, 0, NULL, 0);//连接数据库 if (conn) puts("数据库连接成功!");//判断数据库是否连接成功 else { printf("数据库连接失败,错误:%s", mysql_error(conn)); mysql_close(conn); return EXIT_FAILURE; //exit(1); } //字符编码,解决乱码 if (mysql_set_character_set(conn, "utf8")) puts("字符集设置错误!"); else puts("字符集设置成功!"); char query[20] = "select * from user"; //mysql_real_query(conn,query,strlen(query)); if (mysql_query(conn, query)) printf("查询失败,错误:%s\n", mysql_error(conn)); else puts("查询成功!"); MYSQL_RES* mysql_res; mysql_res = mysql_use_result(conn); int field_num = mysql_num_fields(mysql_res);//列数量 MYSQL_FIELD* field_name = mysql_fetch_fields(mysql_res);//列数组 for (int i = 0; i < field_num; ++i) { std::cout << field_name[i].name << " \n"[i == field_num - 1]; } MYSQL_ROW mysql_row; while(mysql_row = mysql_fetch_row(mysql_res)) { cout << "row1:" << mysql_row[0] << "row2:" << mysql_row[1] << endl; } mysql_free_result(mysql_res);//查完释放 mysql_library_end(); return 0; }
转: https://blog.csdn.net/joyride_run/article/details/130403835
https://blog.csdn.net/wddkxg/article/details/129001324
https://blog.csdn.net/Chasingthewinds/article/details/130344853