在编程之前,如果没有进行环境配置,vs将不能引入#include<mysql.h>库
那么如何对VS进行环境配置?
1、鼠标右键自己的项目,点击属性
2、点击VC++目录,在包含目录这里选择自己安装mysql的路径下的 **include
3、点击c/c++的附加包含目录 ,选择自己安装mysql的路径下的 **include
4、点击链接器-常规-附加库目录,选择自己安装mysql的路径下的 **lib
5、点击链接器-常规-输入目录,选择自己安装mysql的路径下的 lib文件夹下的 libmysql.lib
******还有一步,必须将libmysql.lib放在 C:\Windows\System32下
测试一下 代码千万一定要用到mysql_library_init()和mysql_library_end()要不然会报错的
在非多线程环境中, mysql_library_init()可以省略对 的调用,因为mysql_init() 会在必要时自动调用它。但是, mysql_library_init()在多线程环境中不是线程安全的,因此mysql_init()调用 mysql_library_init(). 您必须 mysql_library_init()在生成任何线程之前调用,或者使用互斥锁来保护调用,无论您是调用 mysql_library_init()还是间接通过 mysql_init(). 在任何其他客户端库调用之前执行此操作
#include<mysql.h> //引入mysql.h头文件
#include<iostream>
#include<stdlib.h>
using namespace std;
//数据库的地址
const char* host = "127.0.0.1";
//数据库的用户名 默认
const char* user = "root";
//数据库的密码
const char* password = "990107Wjl@";
//数据库的名字
const char* database_name = "database_test";
//端口号,默认3306
const int port = 3306;
int main()
{
//第一步:初始化数据库;
//创建一个变量
MYSQL con;
//初始化变量
if (mysql_init(&con) == NULL)
{
printf("初始化失败\n");
exit(1);
}
if (mysql_library_init(0, NULL, NULL) != 0)
{
printf("初始化失败\n");
exit(1);
}
//第二步:设置字符编码;vs字符编码是GBK的,所以要设置编码以防乱码;
//mysql_options(刚才初始化的名字(数据库连接的指针),MYSQL_SET_CHARSET_NAME,“vs字符编码”)
//如果你的vs一直连接不对的话,看看是不是没有这一句**
//连接数据库
//mysql_real_connect(数据库连接的指针,host ip,用户名,密码,数据库名字,端口号,后面两个默认填NULL)
//判断连接是否正确
if (!mysql_real_connect(&con, host, user, password, database_name, port, NULL, 0))
{
//如果出错了 打印错误
fprintf(stderr, " 数据库连接失败:错误原因:%s\n", mysql_error(&con));
exit(1);
}
else
{
printf("connect successfully\n");
}
mysql_close(&con);
mysql_library_end();
system("pause");
return 0;
}
连接成功