C++远程连接MySQL数据库

  • 1. 一个想法
  • 2. 实操过程及截图
    • 2.1 软硬件介绍
    • 2.2 实操过程
    • 2.3 测试
  • 3. 总结

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. 打开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就能运行!
运行结果:

3. 总结

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

提示:若连接出现错误:MySQL server has gone away!
1.检查本地计算机和服务器是否联网
2.检查远程计算机是否打开了mysql服务
3.将远程计算机上的mysql数据库设置成允许远程以密码连接,具体操作如下:

也可以参考:https://blog.csdn.net/golden_soft/article/details/85451604

C++远程连接MySQL数据库相关推荐

  1. windows下本地或者远程连接MYSQL数据库,报1130错误的解决方法

    windows下本地或者远程连接MYSQL数据库,报1130错误的解决方法 参考文章: (1)windows下本地或者远程连接MYSQL数据库,报1130错误的解决方法 (2)https://www. ...

  2. php连接mysql数据库失败_PHP远程连接MySQL数据库失败之原因

    欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 php远程连接mysql数据库的步骤如下: 1.使用所购买空间的数据库管理界面,设置远程访问IP,也就是php文件所在的主 ...

  3. 当远程连接MySQL数据库的时候显示Can't connect to MySQL server (10060

    当远程连接MySQL数据库的时候显示Can't connect to MySQL server (10060),我们从以下几个方面入手,找出错误的原因: 1.网络不通. 检查能不能ping通. 2.防 ...

  4. 无公网IP,外网远程连接MySQL数据库

    哈喽~大家好,这篇来看看无公网IP,外网远程连接MySQL数据库. 文章目录 前言 1. 检查mysql安装状态 2. 安装配置cpolar内网穿透 3. 创建tcp隧道,映射3306端口 4. 公网 ...

  5. python远程连接mysql数据库_python远程连接MySQL数据库

    python远程连接MySQL数据库 本文实例为大家分享了python远程连接MySQL数据库的具体代码,供大家参考,具体内容如下 连接数据库 这里默认大家都已经配置安装好 MySQL 和 Pytho ...

  6. linux mysql如何远程连接mysql数据库,Linux下远程连接MySQL数据库的方法

    Linux下远程连接MySQL数据库的方法 踩坑笔记 估计搞了一个多小时才把这个远程连接搞好.一台本地电脑,一台云服务器,都是linux系统. 步骤 1.在服务器端开启远程访问 首先进入mysql数据 ...

  7. 如何远程连接MySQL数据库

      新安装的 MySQL 只有一个 root 用户,默认不开启远程连接.下面以 Ubuntu 系统下的 MySQL 为例,说明如何远程连接 MySQL 数据库. 登录 root 用户 mysql -u ...

  8. PHP远程连接MYSQL数据库非常慢的解决方法

    不知道如何解决,所以把他空间所在的服务器上也装了个MYSQL,才解决问题,今天又有个这个问题,不能也在这服务器上装一个MYSQL吧,Search: PHP远程连接MYSQL速度慢,有时远程连接到MYS ...

  9. mysql输入命令1002无标题_Linux下远程连接MySQL数据库的方法

    步骤 1.在服务器端开启远程访问 首先进入mysql数据库,然后输入下面两个命令: grant all privileges on *.* to 'root'@'%' identified by 'p ...

最新文章

  1. 面试Java后端开发的感受:如果就以平时项目经验来面试,通过估计很难——再论面试前的准备...
  2. tornado缓存技术
  3. OSPF全国网络互联实施方案
  4. Java数据结构和算法:二叉树
  5. mybatis的if test 条件判断
  6. python判断端口是否开放_Python扫描IP段查看指定端口是否开放的方法
  7. Spring拓展接口之FactoryBean
  8. textread读取记事本文件
  9. 类加载器 java委托机制_解析Java虚拟机中类的初始化及加载器的父委托机制
  10. “泰迪杯”挑战赛 - 基于协同过滤的推荐算法研究与 GUI 设计
  11. Matlab一元函数绘图方法
  12. Ubuntu下使用Monaco字体
  13. 暗影精灵4风扇转速调节_惠普暗影精灵2怎么调节风扇?
  14. 大一新生计算机专业对未来的展望,大学生未来展望简短
  15. 广工anyview数据结构第七章(2021.12)
  16. Learn C++学习笔记:第M章—最常用的智能指针:std::unique_ptr std::make_unique
  17. Thrift(二):Thrift注解
  18. lync2013持久聊天服务器如何修复,Lync Server 2013:持久聊天服务器所需的资源 - Lync Server | Microsoft Docs...
  19. 2023年会议教学庭审录像机产品分析
  20. java中Map遍历的四种方式

热门文章

  1. 『ML笔记』字典学习3(Dictionary Learning,KSVD)
  2. windows 由于使用代理,有时候部分浏览器网页打不开 解决方法
  3. 架构师带你实时解读微服务架构改造案例:天气预报系统的架构设计
  4. vivo AI计算平台 Kubernetes集群Ingress网关实践
  5. Geomagic Wrap对齐
  6. 关于 win10 系统安装Geomagic Wrap 2017导致一直蓝屏重启解决方案
  7. unity3d粒子效果--羽毛的飞溅
  8. OpenFlow基础入门知识
  9. Android 知识点梳理,较完整
  10. 系统准备工具3.14永久关闭