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

server/2024/12/22 16:59:42/

一、安装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.ppmy.cn/server/152273.html

相关文章

【MAC】深入浅出 Homebrew 下 Nginx 的安装与配置指南

硬件&#xff1a;Apple M4 Pro 16寸 系统&#xff1a; macos Sonoma 15.1.1 Nginx 是一款高性能的 Web 服务器和反向代理服务器&#xff0c;广泛应用于全球各地的网站和企业应用中。本文将详细介绍如何在 macOS 环境下使用 Homebrew 安装、启动、管理以及优化配置 Nginx&#x…

macOS brew安装

brew 可以用命令在mac上安装、卸载、更新各种软件包。它是一个用ruby写的软件&#xff0c;软件是托管在github上的。 1、安装brew&#xff0c;一般选择清华源&#xff0c;如果之前安装过brew&#xff0c;执行下面命令时会自动备份old_homebrew&#xff0c;按照操作执行即可&…

关于小程序内嵌h5打开新的小程序

关于小程序内嵌h5打开新的小程序 三种方式 https://juejin.cn/post/7055551463489011749 只依赖于h5本身的就是 https://huaweicloud.csdn.net/64f97ebb6b896f66024ca16c.html https://juejin.cn/post/7055551463489011749 navigateToMiniProgram 故小程序webview里的h5无法…

Java面试被问到GC相关问题如何回答?

前言 众所周知&#xff0c;Java在运行时将内存划分为五个主要部分&#xff1a;程序计数器、虚拟机栈、本地方法栈、堆以及方法区。值得注意的是&#xff0c;程序计数器、虚拟机栈和本地方法栈这三个区域的内存管理相对简单&#xff0c;它们的生命周期与线程同步&#xff0c;即…

8086汇编(16位汇编)学习笔记00.DEBUG命令使用解析及范例大全

8086汇编(16位汇编)学习笔记00.DEBUG命令使用解析及范例大全-C/C基础-断点社区-专业的老牌游戏安全技术交流社区 - BpSend.net[md]启动 Debug&#xff0c;它是可用于测试和调试 MS-DOS 可执行文件的程序。  Debug [[drive:][path] filename [parameters]]  参数  [drive:…

Visio——导出的PDF文件缺乏嵌入字体的解决办法 / 设置导出的PDF文件添加嵌入字体的方法

导出PDF时&#xff0c;勾选 “符合PDF/A” 选项 这样就导出的PDF文件添加了嵌入字体了。

AI大模型与传统模型的六大区别

大模型&#xff0c;也被称为大型语言模型&#xff0c;是指使用大规模数据集训练的深度学习模型。 这些模型通常具有数十亿个参数&#xff0c;能够学习复杂的语言模式、生成连贯的文本、翻译语言、回答问题等。 大模型可以应用于多种自然语言处理任务&#xff0c;如文本生成、…

【论文阅读】LSD: Adversarial Examples Detection Based on Label Sequences Discrepancy

本文提出了一种新的对抗性实例检测算法&#xff0c;以有效地防止现有的对抗性攻击。我们的关键见解是&#xff0c;对于对抗性实例&#xff0c;在源自实例本身和其留一法[23]实例的标记序列之间存在显著差异&#xff08;即&#xff0c;通过用参考值掩蔽示例中的像素而形成的示例…