记录用Visual Studio 2017连接MySQL时遇到的一些问题及连接过程


dbv连接postgresql 报错 dbvisualizer连接mysql数据库报错_MySQL


首先声明一下:用VS连接Mysql的方法有很多种,我使用的方法建一次项目需要配置一次

下面进行连接

首先在这里我用的是X64的mysql进行的连接,故在开始的时候需要更改一下运行控制台 这里我也给出了更改的方式、以及会出现的报错

更改方式:

dbv连接postgresql 报错 dbvisualizer连接mysql数据库报错_MySQL_02


如果不更改会产生的报错:

dbv连接postgresql 报错 dbvisualizer连接mysql数据库报错_数据库_03


*OK,更改过后我们继续进行以下操作,这里我就不详解了,可以去看这里 **
对了还有,过程中可能还会报这样一个错:
没有找到libmysql.dll,因此这个应用程序未能启动。重新安装应用程序可能会修复此问题

关于这个错我是这么来解决的:

dbv连接postgresql 报错 dbvisualizer连接mysql数据库报错_数据库_04


解决方法:

找到MySQL安装包,进入lib目录里面将下面的连个文件一同复制过去

dbv连接postgresql 报错 dbvisualizer连接mysql数据库报错_MySQL_05


dbv连接postgresql 报错 dbvisualizer连接mysql数据库报错_数据库_06


dbv连接postgresql 报错 dbvisualizer连接mysql数据库报错_dbv连接postgresql 报错_07


下面是我用来测试数据库是否连接成功的代码(必须提前建好数据在里面)

#include <stdio.h>  
#include <mysql.h>  
#define _UNICODE
void sqlselect(MYSQL *, const char *);     //测试查询数据 
MYSQL *mysql = NULL;
int main()
{
	//初始化MySQL连接句柄
	mysql = mysql_init((MYSQL *)0);
	mysql_real_connect
	(
		mysql,
		"localhost", //数据库地址
		"root", //数据库用户名
		"root", //数据库密码
		"test", //数据库名称
		0, //数据库端口,0表示默认端口(即3306)
		NULL, //如果unix_socket不是NULL,字符串指定套接字或应该被使用的命名管道。注意host参数决定连接的类型
		0 //通常是0
	);

	if (!mysql) //连接失败
	{
		printf("Connection error:%d, %s\n", mysql_errno(mysql), mysql_error(mysql));
	}
	const char *command = "select * from id,user,pwd"; //查询指令
	// 改变编码格式
	mysql_set_character_set(mysql, "GB2312");
	sqlselect(mysql, command); //查询数据  
	mysql_close(mysql); //关闭连接  
	system("pause");
	return 0;
}

void sqlselect(MYSQL *mysql, const char *command)
{
	int flag = mysql_real_query(mysql, command, strlen(command));
	if (flag)
	{
		printf("Select error:%d, %s\n", mysql_errno(mysql), mysql_error(mysql));
		return;
	}
	MYSQL_RES *res = mysql_store_result(mysql); //读取将查询结果   
	MYSQL_FIELD *field = mysql_fetch_fields(res); //获取所有列名
	int field_count = mysql_field_count(mysql); //获取列数
												//输出所有列名
	for (int i = 0; i < field_count; i++)
	{
		printf("%s\t", field[i].name);
	}
	printf("\n");
	//遍历输出每一行数据  
	MYSQL_ROW row;
	while (row = mysql_fetch_row(res))
	{
		for (int i = 0; i < field_count; i++)
		{
			printf("%s\t", row[i]);
		}
		printf("\n");
	}
}

配置完成以后的效果图:

dbv连接postgresql 报错 dbvisualizer连接mysql数据库报错_MySQL_08