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

Python连接MySQL数据库图文教程,Python连接数据库MySQL入门教程

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 1. 环境准备
    • 1.1安装 Python
    • 1.2选择开发环境
    • 1.3安装 MySQL 数据库
    • 1.4 安装 pymysql 库
  • 2. 连接数据库
  • 3. 数据库基本操作
    • 3.1 创建数据库
    • 3.2 创建表
    • 3.3 插入数据
    • 3.4 查询数据
    • 3.5 更新数据
    • 3.6 删除数据
    • 4. 实际应用案例


前言

本教程旨在为广大初学者和有一定基础的开发者提供一个全面、详细且易于理解的 Python 连接 MySQL 数据库的学习指南。我们将从环境准备开始,逐步引导你完成 MySQL 数据库的安装、Python 相关库的安装,然后详细介绍如何建立数据库连接,以及如何进行数据库的基本操作,如创建数据库、创建表、插入数据、查询数据、更新数据和删除数据等。同时,我们还会通过实际的应用案例,帮助你更好地理解和掌握 Python 与 MySQL 数据库的结合使用,让你能够将所学知识应用到实际项目中。


Python连接MySQL数据库教程
以下是一份全面的 Python 连接 MySQL 数据库教程,包含环境准备、数据库操作基础以及实际应用案例等内容。

1. 环境准备

1.1安装 Python

访问 Python 官方网站,根据你的操作系统(Windows、Mac 或 Linux)下载并安装 Python 3.x 版本。安装时勾选 “Add Python to PATH”,方便在命令行中使用 Python。

Python 3.7安装教程:https://blog.csdn.net/u014164303/article/details/145620847
Python 3.9安装教程:https://blog.csdn.net/u014164303/article/details/145570561
Python 3.11安装教程:https://blog.csdn.net/u014164303/article/details/145549489

1.2选择开发环境

下载 PyCharm 社区版(免费)或专业版(需付费或申请教育版)。安装完成后,打开 PyCharm,创建一个新的项目,在项目设置中选择之前创建的虚拟环境作为项目的 Python 解释器。PyCharm 功能强大,提供代码自动补全、调试等功能,适合开发大型项目。

Pycharm安装教程:https://blog.csdn.net/u014164303/article/details/145674773
PyCharm下载地址:https://pan.quark.cn/s/5756c8cf8b2a

1.3安装 MySQL 数据库

如果你还没有安装 MySQL 数据库,可以从 MySQL 官方网站 下载适合你操作系统的安装程序,然后按照安装向导进行安装。安装完成后,启动 MySQL 服务,并记住你设置的用户名和密码。

mysql 8.0安装教程:https://blog.csdn.net/u014164303/article/details/145493332

1.4 安装 pymysql 库

pymysql 是一个纯 Python 实现的 MySQL 客户端库,使用它可以方便地在 Python 中连接和操作 MySQL 数据库。在命令行中运行以下命令来安装 pymysql:

pip install pymysql

2. 连接数据库

以下是一个简单的 Python 代码示例,展示了如何连接到 MySQL 数据库:

import pymysql# 建立数据库连接
try:conn = pymysql.connect(host='localhost',  # 数据库主机地址,本地数据库一般为 'localhost'user='root',  # 数据库用户名password='your_password',  # 数据库密码,替换为你自己设置的密码database='test_db',  # 要连接的数据库名,如果不存在需要先创建charset='utf8mb4'  # 字符编码)print("数据库连接成功!")
except pymysql.Error as e:print(f"数据库连接失败:{e}")
finally:if conn:conn.close()

3. 数据库基本操作

3.1 创建数据库

如果你需要创建一个新的数据库,可以使用以下代码:

import pymysql# 建立数据库连接,这里不指定具体数据库名
conn = pymysql.connect(host='localhost',user='root',password='your_password',charset='utf8mb4'
)try:# 创建游标对象cursor = conn.cursor()# 执行创建数据库的 SQL 语句cursor.execute("CREATE DATABASE IF NOT EXISTS test_db")print("数据库创建成功!")
except pymysql.Error as e:print(f"数据库创建失败:{e}")
finally:if conn:conn.close()

3.2 创建表

在连接到指定数据库后,可以创建表来存储数据。以下是一个创建用户表的示例:

import pymysql# 建立数据库连接
conn = pymysql.connect(host='localhost',user='root',password='your_password',database='test_db',charset='utf8mb4'
)try:cursor = conn.cursor()# 定义创建表的 SQL 语句create_table_sql = """CREATE TABLE IF NOT EXISTS users (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(255) NOT NULL,age INT)"""cursor.execute(create_table_sql)print("表创建成功!")
except pymysql.Error as e:print(f"表创建失败:{e}")
finally:if conn:conn.close()

3.3 插入数据

可以向表中插入新的数据记录,示例代码如下:

import pymysqlconn = pymysql.connect(host='localhost',user='root',password='your_password',database='test_db',charset='utf8mb4'
)try:cursor = conn.cursor()# 定义插入数据的 SQL 语句insert_sql = "INSERT INTO users (name, age) VALUES (%s, %s)"data = ('John', 25)cursor.execute(insert_sql, data)# 提交事务conn.commit()print("数据插入成功!")
except pymysql.Error as e:# 回滚事务conn.rollback()print(f"数据插入失败:{e}")
finally:if conn:conn.close()

3.4 查询数据

可以从表中查询数据,以下是一个简单的查询示例:

import pymysqlconn = pymysql.connect(host='localhost',user='root',password='your_password',database='test_db',charset='utf8mb4'
)try:cursor = conn.cursor()# 定义查询数据的 SQL 语句select_sql = "SELECT * FROM users"cursor.execute(select_sql)# 获取查询结果results = cursor.fetchall()for row in results:print(row)
except pymysql.Error as e:print(f"数据查询失败:{e}")
finally:if conn:conn.close()

3.5 更新数据

如果需要修改表中的数据记录,可以使用更新操作,示例代码如下:

import pymysqlconn = pymysql.connect(host='localhost',user='root',password='your_password',database='test_db',charset='utf8mb4'
)try:cursor = conn.cursor()# 定义更新数据的 SQL 语句update_sql = "UPDATE users SET age = %s WHERE name = %s"new_age = 26name = 'John'cursor.execute(update_sql, (new_age, name))conn.commit()print("数据更新成功!")
except pymysql.Error as e:conn.rollback()print(f"数据更新失败:{e}")
finally:if conn:conn.close()

3.6 删除数据

可以从表中删除指定的数据记录,示例代码如下:

import pymysqlconn = pymysql.connect(host='localhost',user='root',password='your_password',database='test_db',charset='utf8mb4'
)try:cursor = conn.cursor()# 定义删除数据的 SQL 语句delete_sql = "DELETE FROM users WHERE name = %s"name = 'John'cursor.execute(delete_sql, (name,))conn.commit()print("数据删除成功!")
except pymysql.Error as e:conn.rollback()print(f"数据删除失败:{e}")
finally:if conn:conn.close()

4. 实际应用案例

假设你正在开发一个简单的学生信息管理系统,需要使用 Python 连接 MySQL 数据库来存储和管理学生信息。以下是一个完整的示例代码:

import pymysql# 连接数据库
def connect_db():try:conn = pymysql.connect(host='localhost',user='root',password='your_password',database='student_management',charset='utf8mb4')return connexcept pymysql.Error as e:print(f"数据库连接失败:{e}")return None# 创建学生表
def create_table(conn):try:cursor = conn.cursor()create_table_sql = """CREATE TABLE IF NOT EXISTS students (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(255) NOT NULL,age INT,grade VARCHAR(50))"""cursor.execute(create_table_sql)conn.commit()print("学生表创建成功!")except pymysql.Error as e:conn.rollback()print(f"学生表创建失败:{e}")# 插入学生信息
def insert_student(conn, name, age, grade):try:cursor = conn.cursor()insert_sql = "INSERT INTO students (name, age, grade) VALUES (%s, %s, %s)"cursor.execute(insert_sql, (name, age, grade))conn.commit()print("学生信息插入成功!")except pymysql.Error as e:conn.rollback()print(f"学生信息插入失败:{e}")# 查询所有学生信息
def query_all_students(conn):try:cursor = conn.cursor()select_sql = "SELECT * FROM students"cursor.execute(select_sql)results = cursor.fetchall()for row in results:print(row)except pymysql.Error as e:print(f"学生信息查询失败:{e}")# 主函数
def main():conn = connect_db()if conn:create_table(conn)insert_student(conn, 'Alice', 18, 'Grade 12')query_all_students(conn)conn.close()if __name__ == "__main__":main()

通过以上步骤和示例代码,你可以掌握如何使用 Python 连接和操作 MySQL 数据库。在实际应用中,还可以根据具体需求对代码进行扩展和优化。

相关文章:

Python连接MySQL数据库图文教程,Python连接数据库MySQL入门教程

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言1. 环境准备1.1安装 Python1.2选择开发环境1.3安装 MySQL 数据库1.4 安装 pymysql 库 2. 连接数据库3. 数据库基本操作3.1 创建数据库3.2 创建表3.3 插入数据3.…...

Websocket——心跳检测

1. 前言:为什么需要心跳机制? 在现代的实时网络应用中,保持客户端和服务端的连接稳定性是非常重要的。尤其是在长时间的网络连接中,存在一些异常情况,导致服务端无法及时感知到客户端的断开,可能造成不必要…...

量子计算驱动的金融衍生品定价革命:突破传统蒙特卡洛模拟的性能边界

引言:金融计算的算力困局 某国际投行采用128量子位处理器对亚洲期权组合定价时,其量子振幅估计算法在2.7秒内完成传统GPU集群需要68小时的计算任务。在蒙特卡洛路径模拟实验中,量子随机游走算法将10,000维衍生品的价格收敛速度提升4个数量级…...

文心智能体平台已全面接入DeepSeek模型,全部免费!

文心智能体平台已全面接入DeepSeek模型!即日起,您可以在创建智能体时,自由选择所需要的模型,欢迎大家体验。 ✅ ‌零成本体验‌:当前阶段所有用户可免费使用‌DeepSeek模型。‌ ✅ ‌‌智能适配:4款DeepSe…...

DuodooBMS源码解读之 odoo_phoenix_alarm模块

Odoo18 扩展模块声光报警器用户使用手册 一、模块概述 本扩展模块是基于 Odoo18 原生系统进行开发的,主要用于实现与上位声光报警设备的通讯功能。通过该模块,用户可以方便地向设备发送指令,控制设备的声音、灯光等操作。本手册将详细介绍该…...

docker从容器中cp到本地、cp本地到容器

在 Docker 中,你可以使用 docker cp 命令从容器中复制文件到本地主机。以下是具体步骤: 1. 查找容器 ID 或名称 首先,你需要知道容器的 ID 或名称。你可以使用以下命令列出所有正在运行的容器: docker ps 这将显示所有正在运行…...

网络工程师 (49)UDP协议

前言 UDP协议,即用户数据报协议(User Datagram Protocol),是一种无连接的、不可靠的、面向报文的传输层通信协议。 一、基本特点 无连接性:UDP在发送数据之前不需要与目标设备建立连接,也无需在数据发送结束…...

1.20作业

1 mfw(git泄露) ./git,原本以为点了链接下了index文件,就可以打开看源码,结果解析不了 老老实实用了githacker githacker --url --output 1 assert() 断言(assert)的用法 | 菜鸟教程 命令注入: /?page).system(cat ./templates/fl…...

HTML/CSS中交集选择器

1.作用:选中同时符合多个条件的元素 交集就是或的意思 2.语法:选择器1选择器2选择器3......选择器n{} 3.举例: /* 选中:类名为beauty的p元素,此种写法用的非常的多 */p.beauty{color: red;}/* 选中:类名包含rich和beauty的元素 */.rich.beauty{color: blue;} 4.注意: 1.有标签…...

迅为RK3568开发板篇Openharmony配置HDF控制UART-实操-HDF驱动配置UART-修改HCS配置

对于不同的平台,需要在对应的平台目录修改对应的 hcs 文件,接下来示例为在 rk3568下新增 uart4 uart9 uart7 的修改方法。 修改 vendor/hihope/rk3568/hdf_config/khdf/device_info/device_info.hcs 文件,device_info.hcs 中添加以下内容&…...

实时股票行情接口与WebSocket行情接口的应用

实时股票行情接口与WebSocket行情接口的应用 实时股票行情接口是量化交易和投资决策的核心工具之一,行情接口的种类和功能也在不断扩展。介绍几种常见的行情接口,包括实时股票行情接口、Level2行情接口、WebSocket行情接口以及量化行情接口,…...

k8s故障处理经典案例(Classic Case of k8s Fault Handling)

k8s故障处理经典案例 问题描述 kubernetes版本:v1.22.5 部分Pod在新版本发布后一直处于ContainerCreating状态,经过kubectl delete命令删除后一直Terminating状态。 排查过程 遇到问题先查日志 首先进入宿主机,查看三个日志&#xff0c…...

关于uniApp的面试题及其答案解析

我的血液里流淌着战意!力量与智慧指引着我! 文章目录 1. 什么是uniApp?2. uniApp与原生小程序开发有什么区别?3. 如何使用uniApp实现条件编译?4. uniApp支持哪些平台,各有什么特点?5. 在uniApp中…...

给老系统做个安全检查——Burp SqlMap扫描注入漏洞

背景 在AI技术突飞猛进的今天,类似Cursor之类的工具已经能写出堪比大部分程序员水平的代码了。然而,在我们的代码世界里,仍然有不少"老骥伏枥"的系统在兢兢业业地发光发热。这些祖传系统的代码可能早已过时,架构可能岌…...

langchain系列 - FewShotPromptTemplate 少量示例

导读 环境:OpenEuler、Windows 11、WSL 2、Python 3.12.3 langchain 0.3 背景:前期忙碌的开发阶段结束,需要沉淀自己的应用知识,过一遍LangChain 时间:20250220 说明:技术梳理,针对FewShotP…...

【C语言】fgetpos函数用法介绍

目录 一、函数概述 二、核心参数与数据类型 三、典型应用场景 四、与 ftell() 的对比 五、错误处理与调试 六、进阶示例:多位置标记与恢复 七、注意事项 八、总结 fgetpos() 是C标准库中用于文件操作的关键函数之一,其核心功能是获取文件流的当前…...

《算法基础入门:最常用的算法详解与应用(持续更新实战与面试题)》

1. 排序算法 排序算法是将一组数据按特定的顺序排列起来的算法,常见的有: 冒泡排序(Bubble Sort)选择排序(Selection Sort)插入排序(Insertion Sort)归并排序(Merge So…...

YOLOv11-ultralytics-8.3.67部分代码阅读笔记-split_dota.py

split_dota.py ultralytics\data\split_dota.py 目录 split_dota.py 1.所需的库和模块 2.def bbox_iof(polygon1, bbox2, eps1e-6): 3.def load_yolo_dota(data_root, split"train"): 4.def get_windows(im_size, crop_sizes(1024,), gaps(200,), im_rate_t…...

如何使用Python快速开发一个带管理系统界面的网站-解析方案

如果你想用 Python 开发一个 管理系统界面 的网站,并且希望界面美观,可以考虑以下几个框架和库: 1. Streamlit(快速、简洁) 适合:数据分析、仪表盘、内部管理系统特点: 写法简单,类…...

25年HVV关于0day的面试题

以下是对0day漏洞如何防,基本上是每次HVV中大家都会提到的,今天总结了100day防护手段。 《网安面试指南》https://mp.weixin.qq.com/s/RIVYDmxI9g_TgGrpbdDKtA?token1860256701&langzh_CN 5000篇网安资料库https://mp.weixin.qq.com/s?__bizMzkw…...

【C# 数据结构】队列 FIFO

目录 队列的概念FIFO (First-In, First-Out)Queue<T> 的工作原理&#xff1a;示例&#xff1a;解释&#xff1a; 小结&#xff1a; 环形队列1. **FIFO&#xff1f;**2. **环形缓冲队列如何实现FIFO&#xff1f;**关键概念&#xff1a; 3. **环形缓冲队列的工作过程**假设…...

git 克隆及拉取github项目到本地微信开发者工具,微信开发者工具通过git commit、git push上传代码到github仓库

git 克隆及拉取github项目到本地微信开发者工具&#xff0c;微信开发者工具通过git commit、git push上传代码到github仓库 git 克隆及拉取github项目到本地 先在自己的用户文件夹新建一个项目文件夹&#xff0c;取名为项目名 例如这样 C:\Users\HP\yzj-再打开一个终端页面&…...

【机器学习】多元线性回归算法和正规方程解求解

多元线性方差和正规方差解 一、摘要二、多元线性回归介绍三、正规方程解的求解及代码实现 一、摘要 本文围绕多元线性回归的正规方程解展开&#xff0c;为初学者系统介绍了相关基本概念、求解方法、实际应用以及算法封装要点。 首先&#xff0c;深入阐释了正规方程解这一多元…...

在Linux上创建一个Docker容器并在其中执行Python脚本

在Linux上创建一个Docker容器并在其中执行Python脚本的过程&#xff0c;涉及多个方面的内容&#xff0c;包括安装Docker、编写Dockerfile、构建镜像、运行容器等。 1. 安装Docker 在Linux上使用Docker之前&#xff0c;你需要确保系统已安装Docker。Docker支持的Linux发行版有…...

Linux C 静态库如何生成并使用

1. 编写源文件 首先创建一个简单的示例项目&#xff0c;包含一个头文件和一个源文件。 头文件 my_lib.h // my_lib.h #ifndef MY_LIB_H #define MY_LIB_H// 函数声明 int add(int a, int b);#endif 源文件 my_lib.c #include <stdio.h>void print_hello() {printf(&q…...

清华大学deepseek教程第四版 DeepSeek+DeepResearch 让科研像聊天一样简单(附下载)

deepseek使用教程系列 DeepSeekDeepResearch 让科研像聊天一样简单(附下载) https://pan.baidu.com/s/1VMgRmCSEzNvhLZQc8mu6iQ?pwd1234 提取码: 1234 或 https://pan.quark.cn/s/f3d4511b790a...

请解释 Vue 中的生命周期钩子,不同阶段触发的钩子函数及其用途是什么?

vue生命周期钩子详解&#xff08;Vue 3版本&#xff09; 一、生命周期阶段划分 Vue组件的生命周期可分为四大阶段&#xff0c;每个阶段对应特定钩子函数&#xff1a; 创建阶段&#xff1a;初始化实例并准备数据挂载阶段&#xff1a;将虚拟DOM渲染为真实DOM更新阶段&#xff…...

输入搜索、分组展示选项、下拉选取,el-select 实现:即输入关键字检索,返回分组选项,选取跳转到相应内容页 —— VUE 项目-全局模糊检索

后端数据代码写于下一篇&#xff1a;输入搜索、分组展示选项、下拉选取&#xff0c;全局跳转页&#xff0c;el-select 实现 —— 后端数据处理代码&#xff0c;抛砖引玉展思路 【效果图】&#xff1a;分组展示选项 【去界面操作感受一下】—> 便捷简洁的企业官网 【录制效…...

Transformer为什么需要多头注意力(Multi-Head Attention)?如果没有多头会怎么样?

直接回答 关键点&#xff1a; Transformer 中的多头注意力&#xff08;Multi-Head Attention&#xff09;允许模型同时关注输入数据的不同方面&#xff0c;提升性能。 如果没有多头&#xff0c;模型可能无法捕捉复杂关系&#xff0c;表现会下降。 什么是多头注意力&#xff…...

VUE中的组件加载方式

加载方式有哪些&#xff0c;及如何进行选择 常规的静态引入是在组件初始化时就加载所有依赖的组件&#xff0c;而懒加载则是等到组件需要被渲染的时候才加载。 对于大型应用&#xff0c;可能会有很多组件&#xff0c;如果一开始都加载&#xff0c;可能会影响首屏加载时间。如…...

Linux自启动fastapi服务

步骤一 在/etc/systemd/system/文件夹下创建pyod.service&#xff08;其中/path/to/conda/bin/activate要改为activate实际存放位置&#xff0c;例如miniconda的实际存放位置为/root/miniconda3/bin/activate&#xff09; [Unit] DescriptionPyOD Uvicorn Service Afternetwo…...

C++与Python:两种编程语言的区别

C和Python都是当今编程领域广泛使用的语言&#xff0c;它们各有特色&#xff0c;适用于不同的开发场景。本文将从语言特性、性能、学习难度、应用领域等多个方面探讨C与Python之间的区别。 一、语言特性 类型系统&#xff1a; C&#xff1a;是一种静态类型语言&#xf…...

进程线程的创建、退出、回收

1. 进程相关知识点 1.1 进程创建 fork()&#xff1a; 功能&#xff1a;创建一个子进程。 返回值&#xff1a; 父进程中返回子进程的 PID。 子进程中返回 0。 失败返回 -1。 特点&#xff1a;子进程是父进程的副本&#xff0c;拥有独立的内存空间。 vfork()&#xff1a;…...

深度学习-6.用于计算机视觉的深度学习

Deep Learning - Lecture 6 Deep Learning for Computer Vision 简介深度学习在计算机视觉领域的发展时间线 语义分割语义分割系统的类型上采样层语义分割的 SegNet 架构软件中的SegNet 架构数据标注 目标检测与识别目标检测与识别问题两阶段和一阶段目标检测与识别两阶段检测器…...

低概率发生调用`pthread_cond_wait`的线程没有被唤醒

低概率发生调用pthread_cond_wait的线程没有被唤醒 背景&#xff1a; 你是否也踩过坑&#xff0c;在A线程调用pthread_cond_wait等待&#xff0c;在B线程调用pthread_cond_signal唤醒A线程进行工作处理&#xff0c;然后在某一次用户产品反馈中发现了低概率问题。A线程像是卡住…...

MATLAB学习之旅:数据插值与曲线拟合

在MATLAB的奇妙世界里,我们已经走过了一段又一段的学习旅程。从基础的语法和数据处理,到如今,我们即将踏入数据插值与曲线拟合这片充满魅力的领域。这个领域就像是魔法中的艺术创作,能够让我们根据现有的数据点,构建出更加丰富的曲线和曲面,从而更好地理解和描述数据背后…...

Python复习

第一章 Python概述 python特点 优点&#xff1a; 简单易学&#xff1b;开发效率高&#xff1b;典型的工具语言&#xff1b;强大丰富的模块库&#xff1b;优秀的跨平台&#xff1b; 缺点&#xff1a; 执行效率不高&#xff1b;代码不能加密&#xff1b;用缩进区分语句关系&…...

通信系统中物理层与网络层联系与区别

在通信系统中&#xff0c;物理层和网络层是OSI&#xff08;开放系统互连&#xff09;模型中的两个重要层次&#xff0c;分别位于协议栈的最底层和第三层。它们在功能、职责和实现方式上有显著的区别&#xff0c;但同时也在某些方面存在联系。以下是物理层与网络层的联系与区别的…...

go 错误处理 error

普通错误处理 // 包路径 package mainimport ("errors""fmt" )func sqrt(f1, f2 float64) (float64, error) {if f2 < 0 {return 0, errors.New("error: f2 < 0")}return f1 / f2, nil }func sqrt1(f1, f2 float64) {if re, err : sqrt(f…...

Redis 缓存穿透、击穿、雪崩:问题与解决方案

在使用 Redis 作为缓存中间件时&#xff0c;系统可能会面临一些常见的问题&#xff0c;如 缓存穿透、缓存击穿 和 缓存雪崩。这些问题如果不加以解决&#xff0c;可能会导致数据库压力过大、系统响应变慢甚至崩溃。本文将详细分析这三种问题的起因&#xff0c;并提供有效的解决…...

Spring容器初始化扩展点:ApplicationContextInitializer

目录 一、什么是ApplicationContextInitializer&#xff1f; 1、核心作用2、适用场景 二、ApplicationContextInitializer的使用方式 1、实现ApplicationContextInitializer接口2、注册初始化器 三、ApplicationContextInitializer的执行时机四、实际应用案例 1、动态设置环境…...

冯·诺依曼体系结构、理解操作系统管理

在谈操作系统概念之前&#xff0c;先简单讲解一下冯诺伊曼体系结构&#xff0c;理解了在硬件层面上数据流的走向&#xff0c;这对后续的理解有很大的帮助。 文章目录 一.冯诺依曼结构冯诺依曼体系结构内存存在的意义 二.理解操作系统管理操作系统的作用管理的本质系统调用 一.…...

Linux初体验:从零开始掌握操作系统的发展与多样性

Linux初体验&#xff1a;从零开始掌握操作系统的发展与多样性 前言一、什么是Linux&#xff1f;1. Linux的定义2. Linux的组成 二、Linux的发展历史1. Unix的诞生2. Linux的诞生3. Linux的普及 三、Linux的发行版1. **Ubuntu**2. **CentOS**3. **Debian**4. **Fedora**5. **Arc…...

文心一言大模型的“三级跳”:从收费到免费再到开源,一场AI生态的重构实验

2025年2月&#xff0c;百度文心大模型接连抛出两枚“重磅炸弹”&#xff1a;4月1日起全面免费&#xff0c;6月30日正式开源文心大模型4.5系列。这一系列动作不仅颠覆了李彦宏此前坚持的“闭源优势论”13&#xff0c;更标志着中国AI大模型竞争进入了一个全新的阶段——从技术壁垒…...

技术教程 | 如何实现1v1音视频通话(含源码)

今天&#xff0c;给大家讲一下怎么实现1v1音视频通话&#xff0c;以下是教程内容&#xff1a; 开发环境 开发环境要求如下&#xff1a; 环境要求说明JDK 版本1.8.0 及以上版本Android API 版本API 21、Android Studio 5.0 及以上版本CPU架构ARM 64、ARMV7IDEAndroid Studio其…...

mysql实时同步到es

测试了多个方案同步&#xff0c;最终选择oceanu产品&#xff0c;底层基于Flink cdc 1、实时性能够保证&#xff0c;binlog量很大时也不产生延迟 2、配置SQL即可完成&#xff0c;操作上简单 下面示例mysql的100张分表实时同步到es&#xff0c;优化备注等文本字段的like查询 创…...

Linux-ubuntu系统移植之Uboot启动流程

Linux-ubuntu系统移植之Uboot启动流程 一&#xff0c;Uboot启动流程1.Uboot的两阶段1.1.第一阶段1.11.硬件初始化1.12.复制 U-Boot 到 RAM1.13.跳转到第二阶段 1.2.第二阶段1.21.C 语言环境初始化1.22. 硬件设备初始化1.23. 加载环境变量1.24. 显示启动信息1.25. 等待用户输入&…...

《Operating System Concepts》阅读笔记:p62-p75

《Operating System Concepts》学习第 10 天&#xff0c;p62-p75 总结&#xff0c;总计 14 页。 一、技术总结 1. system call (1) 定义 The primary interface between processes and the operating system, providing a means to invoke services made available by th…...

【Java场景题】MySQL死锁排查

大家好&#xff0c;今天XiXi给大家分享一个MySQL死锁排查的实验&#xff0c;文章主要有&#xff1a; 通过show engine innodb status&#xff0c;查看最近一次死锁信息开启innodb_print_all_deadlocks&#xff0c;在错误日志中能够记录所有死锁信息通过解析binlog日志定位死锁…...

JSON格式,C语言自己实现,以及直接调用库函数(一)

JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式&#xff0c;易于人阅读和编写&#xff0c;同时也易于机器解析和生成。以下为你提供不同场景下常见的 JSON 格式示例。 1. 简单对象 JSON 对象是由键值对组成&#xff0c;用花括号 {} 包裹&…...