连接数据库操作
1,将数据库安装好并配置好环境。
2,在项目属性页将自己的平台设置为与数据库对应的平台,然后在“项目–>属性->C/C++–>常规–>附加包含目录”中添加MySql Server的include目录。
3,在“项目–>属性->链接器–>常规->附加库目录”中添加MySql Server的lib目录。
4,在“项目–>属性->链接器–>输入->附加依赖项“中添加libmysql.lib。
5,测试代码如下
1 #include <iostream> 2 #include<mysql.h> 3 #include<windows.h> 4 5 using namespace std; 6 MYSQL* conn; 7 int main() 8 { 9 const char* user = "root"; 10 const char* password = "123456"; 11 conn = mysql_init(NULL); 12 if (mysql_real_connect(conn, "127.0.0.1", user, password, NULL, 0, NULL, 0) == NULL) 13 cout << "数据库连接失败" << endl; 14 else 15 cout << "数据库连接成功" << endl; 16 return 0; 17 18 }
6,若出现正常运行,则证明配置成功,如下图所示。
常见问题及解决方法
1,问题
>MyProject3.obj : error LNK2019: 无法解析的外部符号 _mysql_init@4,函数 _main 中引用了该符号
>MyProject3.obj : error LNK2019: 无法解析的外部符号 _mysql_real_connect@32,函数 _main 中引用了该符号
>E:\MySQL\mysql-8.0.26-winx64\lib\libmysql.lib : warning LNK4272: 库计算机类型“x64”与目标计算机类型“x86”冲突
>D:\ProgramData\source\repos\MySolution\Debug\MyProject3.exe : fatal error LNK1120: 2 个无法解析的外部命令
解决办法:这是因为数据库为X86架构的64位扩展(x86_64),其本质为64位,而我们的调试的平台使用的为X86(32位),这就造成了不兼容的问题,当我们在项目属性页设置的时候就应该将调试的平台改为位数据库对应的平台。这样编译就没有问题了
数据库的位数:
属性页的平台: