Ubuntu23.10下解决C语言调用mysql.h问题

Ubuntu23.10下解决C语言调用mysql.h问题

导语

在学习C语言和MySQL的调用的时候遇到包和版本的问题,由于使用的书很老(10年的),因此很多MySQL的包已经过时,在查找很多资料和询问gpt之后得到了解决方案

环境准备

Ubuntu的版本如下,以及使用的是清华源
在这里插入图片描述

问题和解决方案

在使用C语言调用MySQL的时候一直出现找不到mysql.h的相关文件的问题,于是重新清空了mysql进行如下的重新安装(也可以直接开新机安装)

新版本的MySQL已经更改了C语言和mysql.h的连接包,所以需要先安装MySQL Connector/C,具体命令如下

sudo apt-get update
sudo apt-get install libmysqlclient-dev
mysql_config --cflags
mysql_config --libs

后两条命令是检测MySQL Connector/C是否安装完成,由于新版本的MySQL已经不支持书上的写法,所以需要安装这个包,正常应该显示如下图

在这里插入图片描述

之后直接安装服务器即可

sudo apt-get update
sudo apt-get install mysql-server

通过下面的程序验证安装是否成功

#include <stdio.h>
#include <mysql/mysql.h>

int main() {
    MYSQL *conn;
    conn = mysql_init(NULL);

    if (conn == NULL) {
        fprintf(stderr, "mysql_init() failed\n");
        return EXIT_FAILURE;
    }

    if (mysql_real_connect(conn, "localhost", "user", "password", "database", 0, NULL, 0) == NULL) {
        fprintf(stderr, "mysql_real_connect() failed: %s\n", mysql_error(conn));
        mysql_close(conn);
        return EXIT_FAILURE;
    }

    printf("Connected to the database successfully!\n");

    mysql_close(conn);
    return EXIT_SUCCESS;
}

执行的命令和结果如下

gcc -o test_program test_program.c $(mysql_config --cflags) $(mysql_config --libs)

在这里插入图片描述

之后可以在MySQL中开表来测试一下C语言程序是否能操作对应的表,不过需要写对shell的编译命令

总结

新版的MySQL更改了与C语言的连接方式,但是大部分C语言调用MySQL的操作并没有改变

参考文献

  1. ChatGPT
  2. Linux下MySQL的简单使用
<think>好的,我需要帮用户找到适用于树莓派的Ubuntu 23.10镜像文件下载方法。首先,用户提到了引用[1]和[2],其中引用[1]提到了使用Raspberry Pi Imager工具来刷写系统到SD卡,支持Ubuntu。引用[2]提到Ubuntu 23.10 LTS的发布。 用户的问题是下载适用于树莓派的Ubuntu 23.10镜像。首先,我需要确认Ubuntu官方是否提供了23.10版本的树莓派镜像。通常,Ubuntu为树莓派提供专门的镜像,比如Ubuntu Server或Ubuntu Core。不过根据知识库,引用[2]提到的是Ubuntu 23.10 LTS的发布,但标准的Ubuntu桌面版可能不直接支持树莓派,而树莓派可能有特定的版本。 接下来,步骤可能包括使用Raspberry Pi Imager工具,该工具内置了多个操作系统选项,包括Ubuntu的不同版本。用户可能需要通过这个工具选择Ubuntu 23.10。如果直接下载镜像文件,可能需要到Ubuntu的官方网站或者树莓派的分发页面查找。 需要注意的是,Ubuntu的版本命名中,LTS(长期支持版)通常是偶数年的版本,如22.04 LTS,而23.10是非LTS版本。但根据引用[2],用户明确提到23.10 LTS,可能存在混淆,或者可能有误。不过按照用户提供的信息,应该以引用内容为准,即存在23.10 LTS版本,并需要找到对应的树莓派镜像。 因此,正确的步骤应该是指导用户使用Raspberry Pi Imager工具,选择Ubuntu 23.10的选项,或者直接前往Ubuntu官方网站的下载页面,找到适用于树莓派的镜像。同时,需要检查引用中的信息是否准确,比如Ubuntu 23.10是否为LTS版本,但根据常识,23.10应是非LTS,但用户引用中可能信息有误,这里应按照用户提供的引用回答。 最终,回答应包括两种方法:使用Raspberry Pi Imager直接刷写,或者手动下载镜像文件。同时,需要提醒用户确认版本的正确性,并可能指出可能的版本差异。</think>您可以通过以下两种方法下载适用于树莓派的Ubuntu 23.10镜像文件: ### 方法一:使用Raspberry Pi Imager(推荐) 1. 下载并安装最新版[Raspberry Pi Imager](https://www.raspberrypi.com/software/) 2. 启动工具后选择树莓派型号 3. 在操作系统选择界面点击「Ubuntu」 4. 从版本列表中找到「Ubuntu 23.10」的树莓派专用镜像[^1] ### 方法二:手动下载镜像文件 访问Ubuntu官方下载页面: ```text https://ubuntu.com/download/raspberry-pi ``` 在「Select version」下拉菜单中选择23.10版本,选择对应的树莓派型号后即可下载.img.xz格式的镜像文件[^2] $$注意:Ubuntu\ 23.10\ 属于短期支持版本,建议生产环境优先考虑LTS版本$$
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值