C++远程连接MySQL数据库

1 篇文章 0 订阅

1. 一个想法

最近迷上了MySQL数据库,感觉很多信息都可以存在数据库中(对于我这种有严重健忘症的 更加需要)。因为也是在学习C++语言,所以就想着用C++语言来操作mysql,而且,我的数据库是装在实验室电脑上的,所以想着能远程连接mysql就好了。有了这个念头,于是上网找了好多有关的博文,但是很少有完全符合我的需求的。但是还是有一点帮助,至少让我有了在vs2019下连接mysql的思路,下面就是我实操的心得。
只为记录下来,供以后参考和与大家一起学习,有不妥之处,还请见谅!

2. 实操过程及截图

2.1 软硬件介绍

软件:vs2019,mysql5.7(装在另一台机器上),win10 家庭版 64位
编程语言:C++

2.2 实操过程

  1. 将远程机器上的mysql安装文件里的include和lib目录复制到本地计算机,如我的远程电脑上的MySQL是默认安装的,所以安装目录就是C:\Program Files\MySQL\MySQL Server 5.7,本地计算机我是拷贝到了D:\app\mysqlCpp目录下,结果如下:
    2.2.1
  2. 打开vs2019,新建空项目,再鼠标右击项目名称,选择属性,在弹出的项目属性窗口的左边栏中选择VC++目录,把刚刚拷贝过来的include和lib文件夹路径分别添加到包含目录库目录中,具体操作截图如下:
    在这里插入图片描述
  3. 再点击左边选项栏下的链接器,选择输入,在右边框中的附加依赖项后面输入libmysql.lib;,最后点确认。截图如下:
    在这里插入图片描述
  4. 最后还需要将之前拷贝的lib目录下的 libmysql.dll 文件拷贝项目的根目录下,这一步很重要,因为vs2019就是通过加载动态库文件来连接接远程数据库的。截图如下:
    在这里插入图片描述
    至此,所有的配置操作都完成了,接下来就是进入主题了–》开始写代码来连接mysql!

2.3 测试

简单的查询表的记录,并输出,不多说,直接放代码

#include <iostream>
#include <string>
#include <mysql.h>
#include<iomanip>

using namespace std;

void sqlselect(MYSQL*, const char*);     //测试查询数据 

MYSQL* mysql = NULL;

int main()
{
	//初始化MySQL连接句柄
	mysql = mysql_init((MYSQL*)0);

	mysql_real_connect
	(
		mysql,
		"10.255.60.194", //主机ip地址
		"root", //数据库用户名
		"这里输入你的root用户的密码", //数据库密码
		"要连接的库名", //数据库名称
		3306, //数据库端口,0表示默认端口(即3306)
		NULL, //如果unix_socket不是NULL,字符串指定套接字或应该被使用的命名管道。注意host参数决定连接的类型
		0 //通常是0
	);

	if (!mysql) //连接失败
	{
		cout << "Connection error: " << mysql_errno(mysql) 
			 << ", " << mysql_error(mysql) << endl;
	}

	const char* command = "select * from 表名"; //查询指令

	// 改变编码格式
	mysql_set_character_set(mysql, "GB2312");

	sqlselect(mysql, command); //查询数据  

	mysql_close(mysql); //关闭连接  

	return 0;
}

void sqlselect(MYSQL* mysql, const char* command)
{

	int flag = mysql_real_query(mysql, command, strlen(command));

	if (flag)
	{
		cout << "Select error: " << mysql_errno(mysql) << ", " << mysql_error(mysql) << endl;
		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++)
		cout << setw(15) << field[i].name;

	cout << endl;

	//遍历输出每一行数据  
	MYSQL_ROW row;
	while (row = mysql_fetch_row(res))
	{
		for (int i = 0; i < field_count; i++)
			cout << setw(15) << row[i];
		cout << endl;
	}
}

说明:此代码非原创!不过我稍加修改了,直接copy就能运行!
运行结果:
success

3. 总结

感觉需要学习的东西还是很多,不过总算完成了自己的一个想法,整个过程现在想起来还是挺享受的,毕竟基本达到了我的目的,最后还是要感谢网上提供资料给我的这些大佬,虽然不认识,但是我们有着共同的 feel !
感谢大家的阅读,如有不妥之处,欢迎大家leave message!

提示:若连接出现错误:MySQL server has gone away!
1.检查本地计算机和服务器是否联网
2.检查远程计算机是否打开了mysql服务
3.将远程计算机上的mysql数据库设置成允许远程以密码连接,具体操作如下:
在这里插入图片描述
也可以参考:https://blog.csdn.net/golden_soft/article/details/85451604

  • 10
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: C ado(ActiveX Data Objects)是一种用于连接数据库的编程技术,可以通过ADO对象来实现远程连接数据库远程连接数据库是指通过网络访问并操作位于其他计算机上的数据库。C ado提供了一种简单和高效的方法来连接不同类型的数据库,包括Microsoft SQL Server、Oracle、MySQL等。 要实现远程连接数据库,首先需要在C程序中引入相关的ADO库文件,并创建ADO连接对象。连接对象可以通过指定数据库连接字符串来传递必要的参数,如服务器地址、数据库名称、用户名和密码等。连接字符串的格式会根据使用数据库类型而有所不同。 在连接对象创建后,可以使用其方法来建立实际的连接,这样程序就可以发送SQL查询和执行其他操作了。在成功连接后,可以使用SQL语句来执行插入、删除、更新和查询等操作。 连接数据库时,需要确保远程服务器的网络设置允许连接请求,并且目标服务器上的数据库服务处于运行状态。 在完成数据库操作后,应该记得关闭连接,释放资源,这样可以避免占用过多的系统资源和连接数。 总之,使用C ado可以方便地通过网络连接和操作远程数据库。通过适当的配置和编程,可以实现安全和高效的远程数据库连接,并对数据进行操作和管理。 ### 回答2: C ado 是一种用于远程连接数据库的技术。它是基于微软的ActiveX Data Objects(ADO)库开发的,并且是一种用于访问和操作各种数据库的标准接口。通过使用C ado,我们可以实现在应用程序中远程连接并操作数据库,以便进行数据的读取、插入、更新和删除等操作。 首先,我们需要在应用程序中引入C ado的库文件,并且初始化相关的对象和连接字符串。然后,我们可以使用C ado提供的函数和方法来创建连接对象,打开数据库连接,并执行SQL语句或存储过程等来对数据库进行操作。 在远程连接数据库时,我们需要确保数据库服务器开启远程连接功能,并且在连接字符串中指定正确的数据库服务器地址、用户名和密码等信息。在连接成功后,我们就可以通过C ado提供的命令对象来执行SQL语句,例如SELECT语句用于查询数据,INSERT语句用于插入数据,UPDATE语句用于更新数据,DELETE语句用于删除数据等。 C ado还提供了一些其他的功能和特性,比如事务处理、数据类型转换、错误处理等,以便我们进行更加灵活和有效的数据库操作。同时,它还支持多种数据库类型,如SQL Server、Oracle、MySQL等,使得我们可以在不同的数据库系统之间无缝切换。 总的来说,通过C ado,我们可以轻松实现应用程序与远程数据库之间的连接和数据交互,提高数据的访问效率和操作便捷性。它是一种强大而灵活的技术,被广泛应用于各种类型的软件开发中。 ### 回答3: cado是一种用于远程连接数据库的工具。它可以在计算机之间建立网络连接,并通过网络连接远程数据库服务器。通过使用cado,用户可以在本地计算机上访问和操作远程数据库中的数据。 cado提供了一种简单而有效的方法来连接和管理远程数据库。用户只需要提供远程数据库服务器的IP地址、用户名和密码,就可以使用cado建立连接。一旦连接建立成功,用户就可以执行各种数据库操作,例如查询、插入、更新和删除数据。 与传统的本地数据库相比,cado的远程连接功能具有许多优势。首先,它可以让用户从任何地方远程访问数据库,无论是在同一网络内还是在跨越不同地区的网络中。这使得多人合作和远程工作变得更加容易和灵活。 其次,使用cado进行远程连接可以提高数据库的安全性。通过仅允许经过身份验证的用户访问数据库远程连接可以帮助防止未经授权的访问和数据泄漏。 另外,cado还提供了许多其他的功能和工具,如数据备份和恢复、数据库管理和性能优化等。这些功能可以帮助用户更好地管理和使用远程数据库。 总而言之,cado是一种用于远程连接数据库的工具,它提供了一种方便、安全和灵活的方式来访问和操作远程数据库中的数据。无论是为了多人合作、远程工作还是为了提高数据库的安全性,cado都是一个非常有用的工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值