1.正确安装mysql
安装之后的配置文件
2.在VS2022中进行相关配置
(1)右键项目,打开属性
注意是右键项目,不是.cpp文件
(2)配置属性-> VC++目录 -> 包含目录 ->添加头文件路径(如图)
(3)配置属性-> VC++目录 -> 库目录 ->添加动态库路径(如图)
(4)在 链接器 -> 输入 ->附加依赖项 中输入libmysql.lib
(5) 将了lib文件夹中的libmysql.dll文件 复制到C:\Windows\System32
接下来 就可以可以运行代码了
cpp
#include<iostream>
#include<mysql.h>
using namespace std;
int main() {
MYSQL* conn; // MySQL连接
MYSQL_RES* res; // MySQL查询结果
MYSQL_ROW row; // MySQL行
// std::locale::global(std::locale("en_US.UTF-8")); // 将程序的全局区域设置为 UTF-8 区域,
//连接数据库的信息
const char* server = "localhost";
const char* user = "ml";
const char* password = "123456";
const char* datebase = "testdb";
// 初始化MySQL连接
conn = mysql_init(NULL);
// 连接数据库
if (conn == NULL) {
cerr << "MYSQL数据库初始化失败" << endl;
return 1;
}
if (mysql_real_connect(conn, server, user, password, datebase, 0, NULL, 0) == NULL) {
cerr << "MYSQL数据库连接失败:" << mysql_error(conn) << endl;
return 1;
}
// 查询数据库
mysql_query(conn, "set names utf8");
if (mysql_query(conn, "SELECT * FROM tb_user")) {
cerr << "查询失败" << mysql_error(conn) << endl;
return 1;
}
// 获取查询结果
res = mysql_use_result(conn);
//输出结果
/*while ((row = mysql_fetch_row(res)) != NULL) {
cout << row[0] << " " << row[1] << endl;
}*/
// 逐行输出结果
while ((row = mysql_fetch_row(res)) != NULL) {
// 输出当前行的所有列数据
for (int i = 0; i < mysql_num_fields(res); ++i) {
if (i > 0) {
cout << " "; // 列之间用空格分隔
}
if (row[i] == NULL) {
cout << "NULL"; // 处理 NULL 数据
}
else {
cout << row[i];
}
}
cout << endl; // 行尾输出换行符
}
// 释放结果
mysql_free_result(res);
// 关闭连接
mysql_close(conn);
return 0;
}
3.中文乱码
运行之后,中文乱码
这是因为:数据库编码格式为utf8mb4,但是黑窗口gbk,
所以要进行全局编码设置
问题解决!!