当前位置: 首页 > news >正文

实验13 C语言连接和操作MySQL数据库

一、安装MySQL

1、使用包管理器安装MySQL

sudo apt update
sudo apt install mysql-server

2、启动MySQL服务:

sudo systemctl start mysql

3、检查MySQL服务状态:

sudo systemctl status mysql

二、安装MySQL开发库

sudo apt-get install libmysqlclient-dev

三、程序编写

#include <mysql.h>
#include <stdio.h>
#include <stdlib.h>int main() {MYSQL *conn;MYSQL_RES *res;MYSQL_ROW row;const char *server = "localhost";const char *user = "root";const char *password = ""; // 替换为你的MySQL root密码const char *database = "testdb"; // 替换为你的数据库名char query[256];// 初始化MySQL连接conn = mysql_init(NULL);if (!conn) {fprintf(stderr, "mysql_init() failed\n");exit(1);}// 连接到MySQL服务器if (!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0)) {fprintf(stderr, "%s\n", mysql_error(conn));exit(1);}// 创建数据库表sprintf(query, "CREATE TABLE IF NOT EXISTS users (id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(255), password VARCHAR(255))");if (mysql_query(conn, query)) {fprintf(stderr, "%s\n", mysql_error(conn));exit(1);}// 插入数据sprintf(query, "INSERT INTO users (username, password) VALUES ('user1', 'pass1')");if (mysql_query(conn, query)) {fprintf(stderr, "%s\n", mysql_error(conn));exit(1);}// 查询数据sprintf(query, "SELECT * FROM users");if (mysql_query(conn, query)) {fprintf(stderr, "%s\n", mysql_error(conn));exit(1);}res = mysql_store_result(conn);printf("ID\tUSERNAME\tPASSWORD\n");while ((row = mysql_fetch_row(res)) != NULL) {printf("%s\t%s\t%s\n", row[0], row[1], row[2]);}mysql_free_result(res);// 关闭MySQL连接mysql_close(conn);return 0;
}

编译C程序
使用gcc编译你的C程序,并链接MySQL客户端库:

gcc -o mysql_program your_program.c $(mysql_config --cflags --libs)

数据库准备

mysql -u root
CREATE DATABASE testdb;

运行
在这里插入图片描述


服务

MySQL 开机自启

启用自启

sudo systemctl enable mysql

禁用自启

sudo systemctl disable mysql

MySQL 手动启用

启动服务

sudo systemctl start mysql
# 或者
sudo systemctl start mysql.service
# 或者
sudo systemctl start mariadb.service

停止服务

sudo systemctl stop mysql
# 或者
sudo systemctl stop mysql.service
# 或者
sudo systemctl stop mariadb.service

查看MySQL服务状态

sudo systemctl status mysql
# 或者
sudo systemctl status mysql.service
# 或者
sudo systemctl status mariadb.service
http://www.lryc.cn/news/507192.html

相关文章:

  • 90度Floating B to B 高速连接器信号完整性仿真
  • 【踩坑】Pytorch与CUDA版本的关系及安装
  • 信息隐藏 数字图像空域隐写与分析技术的实现
  • halcon单相机+机器人*眼在手外标定心得
  • pytest入门十:配置文件
  • 基于Clinical BERT的医疗知识图谱自动化构建方法,双层对比框架
  • 介绍 Html 和 Html 5 的关系与区别
  • C05S13-MySQL数据库备份与恢复
  • 【MySQL — 数据库基础】深入理解数据库服务与数据库关系、MySQL连接创建、客户端工具及架构解析
  • Three.js相机Camera控件知识梳理
  • Unity 开发Apple Vision Pro空间锚点应用Spatial Anchor
  • BGP的六种状态分别是什么?
  • IDEA搭建SpringBoot,MyBatis,Mysql工程项目
  • Reactor
  • 在ESP32使用AT指令集与服务器进行TCP/IP通信时,<link ID> 解释
  • [SZ901] JTAG合并功能(类似FPGA菊花链)
  • paimon中的Tag
  • 3分钟读懂数据分析的流程是什么
  • uniapp入门 01创建项目模版
  • React 19新特性探索:提升性能与开发者体验
  • Hive是什么,Hive介绍
  • [LeetCode-Python版] 定长滑动窗口1(1456 / 643 / 1343 / 2090 / 2379)
  • imx6ull qt多页面控制系统(正点原子imx系列驱动开发)
  • OCR:文字识别
  • SQL Server通过存储过程实现自定义邮件格式并定时发送
  • 【进阶编程】MVC和MVVM实现前后端分离的实现
  • HT81297 18W内置升压单声道D类音频功放
  • linux ipmitool配置机器的BMC(服务器管理后台)
  • 【项目实战】location.href 实现文件下载
  • 【Threejs】从零开始(十)--加载gltf模型和压缩后的模型