远程连接MySQL并操作

server/2024/9/22 15:35:03/

配置MySQL开发环境 

 如果你使用的是基于Debian的系统(如Ubuntu),可以在终端通过如下步骤安装MySQL开发包。

更新软件包列表

 运行以下命令以确保你拥有最新的软件包列表。

sudo apt-get update

安装libmysqlclient-dev开发包

执行以下命令以安装MySQL客户端开发包。

sudo apt-get install libmysqlclient-dev

检查安装的文件

确认mysql.h是否已经正确安装。通常,mysql.h会位于/usr/include/mysql/目录下。

ls /usr/include/mysql/mysql.h

编译程序时指定头文件路径

在编译时,确保编译器能找到mysql.h文件。可以通过-I标志指定头文件路径。

g++ my_program.c -o my_program -I /usr/include/mysql -lmysqlclient

使用API连接数据库并执行插入操作

代码

#include <mysql.h>
#include <stdio.h>
#include <string.h>#define WENDY_DB_SERVER_IP "192.168.32.162"  // 数据库服务器的 IP 地址
#define WENDY_DB_SERVER_PORT 3306             // 数据库服务器的端口号
#define WENDY_DB_PASSWORD "******"            // 数据库用户的密码(这里是真的密码,我手动打码了)
#define WENDY_DB_USERNAME "wendy"             // 数据库用户名
#define WENDY_DB_DEFAULTDB "wendy_db"         // 默认数据库名称#define SQL_INSERT_TBL_USER "INSERT tbl_user(u_name,u_gender) VALUES('robot','man');"  // 要执行的 SQL 插入语句int main(){MYSQL mysql;// 初始化 MySQL 连接句柄if(NULL==mysql_init(&mysql)){printf("mysql_init : %s\n",mysql_error(&mysql));  // 输出初始化错误信息return -1;  // 退出程序,返回错误代码 -1}// 连接到 MySQL 数据库if(!mysql_real_connect(&mysql, WENDY_DB_SERVER_IP, WENDY_DB_USERNAME, WENDY_DB_PASSWORD, WENDY_DB_DEFAULTDB, WENDY_DB_SERVER_PORT, NULL, 0)){printf("mysql_real_connect : %s\n",mysql_error(&mysql));  // 输出连接错误信息return -2;  // 退出程序,返回错误代码 -2}// 执行 SQL 查询(插入语句)if(mysql_real_query(&mysql, SQL_INSERT_TBL_USER, strlen(SQL_INSERT_TBL_USER))){printf("mysql_real_query : %s\n",mysql_error(&mysql));  // 输出执行查询错误信息}// 关闭 MySQL 连接mysql_close(&mysql);return 0; 
}

运行结果 

终端

MySQL数据库 

以下两图为运行mysql.cpp前后的数据库数据,可以看到tbl_user成功插入了一条数据。

使用API连接数据库并执行查询操作

代码

#include <mysql/mysql.h>
#include <stdio.h>
#include <string.h>#define WENDY_DB_SERVER_IP "192.168.32.162"  // 数据库服务器的 IP 地址
#define WENDY_DB_SERVER_PORT 3306             // 数据库服务器的端口号
#define WENDY_DB_PASSWORD "******"            // 数据库用户的密码
#define WENDY_DB_USERNAME "wendy"             // 数据库用户名
#define WENDY_DB_DEFAULTDB "wendy_db"         // 默认数据库名称#define SQL_SELECT_TBL_USER "SELECT * FROM tbl_user;"  // 要执行的 SQL 查询语句int wendy_mysql_select(MYSQL *mysql){// 执行 SQL 查询语句if(mysql_real_query(mysql, SQL_SELECT_TBL_USER, strlen(SQL_SELECT_TBL_USER))){printf("mysql_real_query : %s\n",mysql_error(mysql));  // 输出执行查询错误信息return -3;}// 获取查询结果MYSQL_RES *res = mysql_store_result(mysql);if(res == NULL){printf("mysql_store_result : %s\n", mysql_error(mysql)); return -4;}// 获取结果集中的行数int rows = mysql_num_rows(res);printf("rows: %d\n", rows);// 获取结果集中的列数int fields = mysql_num_fields(res);printf("fields: %d\n", fields);// 遍历结果集的每一行MYSQL_ROW row;while((row = mysql_fetch_row(res))){int i = 0;for(i = 0; i < fields; i++){printf("%s\t", row[i]);  // 打印每个字段的值}printf("\n");}// 释放结果集内存mysql_free_result(res);return 0;
}int main(){MYSQL mysql;// 初始化 MySQL 连接句柄if(mysql_init(&mysql) == NULL){printf("mysql_init 错误 : %s\n", mysql_error(&mysql));  // 输出初始化错误信息return -1;  }// 连接到 MySQL 数据库if(mysql_real_connect(&mysql, WENDY_DB_SERVER_IP, WENDY_DB_USERNAME, WENDY_DB_PASSWORD, WENDY_DB_DEFAULTDB, WENDY_DB_SERVER_PORT, NULL, 0) == NULL){printf("mysql_real_connect 错误 : %s\n", mysql_error(&mysql));  // 输出连接错误信息return -2;  }// 执行查询操作wendy_mysql_select(&mysql);// 关闭 MySQL 连接mysql_close(&mysql);return 0; 
}

运行结果 

推荐一下

0voice · GitHub


http://www.ppmy.cn/server/120336.html

相关文章

【开源免费】基于SpringBoot+Vue.JS教师工作量管理系统(JAVA毕业设计)

本文项目编号 T 043 &#xff0c;文末自助获取源码 \color{red}{T043&#xff0c;文末自助获取源码} T043&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 查…

Oracle SQL Developer:数据库开发与数据管理的利器

在数据库管理和开发领域&#xff0c;拥有一个强大而灵活的工具是至关重要的。Oracle SQL Developer 是 Oracle 公司提供的一个免费集成开发环境&#xff0c;它专为数据库开发、管理和数据建模而设计。本文将详细介绍 Oracle SQL Developer 的功能、特点以及如何使用它来执行数据…

C++:tinyxml2用于解析、操作和生成XML文件

TinyXML-2 是一个轻量级、简单易用的 C 库&#xff0c;用于解析、操作和生成 XML 文件。与其他 XML 库相比&#xff0c;TinyXML-2 旨在提供简单性和效率&#xff0c;特别适合嵌入式系统、游戏开发或需要快速处理 XML 的场景。它是 TinyXML 的继任者&#xff0c;更加轻量和快速&…

Vue3 Day7-全局组件、指令以及pinia

7.1 全局组件 App.vue <template><div><h2>我是父组件&#xff0c;下面是全局组件的内容</h2><HelloWorld></HelloWorld></div> </template> ​ <script setup> ​ </script> <style scoped></style&g…

大舍传媒:尼日利亚传统新闻媒体宣传助力新兴行业蓬勃发展

大舍传媒&#xff1a;尼日利亚传统新闻媒体宣传助力新兴行业蓬勃发展 在全球化的浪潮下&#xff0c;媒体作为信息传播的重要渠道&#xff0c;对于促进行业发展和推动社会进步扮演着举足轻重的角色。特别是在非洲大陆上人口最多、经济最发达的国家——尼日利亚&#xff0c;传统…

vue循环渲染动态展示内容案例(“更多”按钮功能)

当我们在网页浏览时&#xff0c;常常会有以下情况&#xff1a;要展示的内容太多&#xff0c;但展示空间有限&#xff0c;比如我们要在页面的一部分空间中展示较多的内容放不下&#xff0c;通常会有两种解决方式&#xff1a;分页&#xff0c;“更多”按钮。 今天我们的案例用于…

CleanMyMac 5 for Mac 最新中文破解版下载 系统优化垃圾清理工具

今天给大家带来的是CleanMyMac最新款CleanMyMac 5&#xff0c;它是一个全面的Mac清理和维护工具&#xff0c;通过提供多项强大的功能&#xff0c;帮助用户简化日常维护任务&#xff0c;提升系统性能&#xff0c;同时保护个人隐私和安全。无论是新手还是经验丰富的Mac用户&#…

本地部署轻量级web开发框架Flask结合内网穿透公网环境访问管理界面

文章目录 1. 安装部署Flask2. 安装Cpolar内网穿透3. 配置Flask的web界面公网访问地址4. 公网远程访问Flask的web界面 本篇文章主要讲解如何在本地安装Flask&#xff0c;以及如何将其web界面发布到公网进行远程访问。 Flask是目前十分流行的web框架&#xff0c;采用Python编程语…