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

Ubuntu下MySQL的安装与使用(一)

目录

用户切换

MySQL的安装

MySQL的初步使用

登录与退出

Linux和mysql中的普通用户和root用户

查看、创建与使用

简单应用

MySQL 数据库在 Linux 文件系统中的存储结构

数据库、数据库服务、数据库管理系统(宏观)

微观下的DBMS

SQL语言及其分类DDL、DCL、DML

MySQL中数据库的常见操作

字符集和校验规则

简单验证

删除数据库

查看当前数据库

修改数据库的字符集和校验集

查看MySQL 数据库的创建语句(包括其字符集等信息)

数据库的排序

数据库的备份与恢复

查看数据库的连接状态

MySQL中表的常见操作

表的创建

表的查看

表的插入

表的修改

表的删除


用户切换

1、为减少操作复杂度,使用sudo -i指令切换至管理员账户(未设管理员账户的密码则直接进入)

2、使用id -u指令判断当前用户是否是管理员账户:是则输出为0,不是则输出其它数字

MySQL的安装

默认下载目前的最新版本

1、使用dpkg-query -l | grep mysql指令列出所有已安装的与 "mysql" 相关的软件包及其版本信息,确保系统中没有残留的旧版 MySQL 安装包或冲突的包文件,这样可以避免新安装的版本与现有的 MySQL 版本发生冲突或导致兼容性问题

2、使用apt update指令获取最新的软件包信息,以确保你系统上的各种软件包列表是最新的

3、使用apt install mysql-server指令安装最新版本的mysql(记得安装完后再检查一下)

4、安装完成后,MySQL 服务应自动启动,可以使用systemctl status mysql指令检查 MySQL 服务的状态(我查询的时间是17:10而不是自动启动时的16:58,故已安装成功)如果服务器未启动可以使用systemctl start mysql指令启动mysql

通过ps ajx | grep mysql指令可以检查当前是否有mysql的进程在运行,并列出相关信息

5、为提高安全性,建议使用mysql_secure_installation指令运行MySQL的安全配置脚本并完成一系列操作(不做赘述自行了解)

MySQL的初步使用

登录与退出

1、当 MySQL 运行在本机,且监听的默认端口为3306(安装后不修改mysql的配置文件,则mysql的默认监听端口号一直是3306)直接使用mysql -u root -p指令便,可连接本地的 MySQL 服务器(默认套接字连接),如果有密码则输入密码,没密码直接按Enter(后续必须设置密码)

后续可能使用类似于mysql -h 127.0.0.1 -P 3306 -u root -p指令登录mysql

  • -h 127.0.0.1:指明登录部署了mysql的主机(省略 -h ,则默认从本地登录(localhost) )
  • -P 3306:指明要访问的端口号
  • -u root:指明登录的用户root 是 MySQL 的默认超级管理员账户,安装 MySQL 后,默认仅允许 root 从本地登录(localhost))
  • -p:指明需要输入密码(与Linux一样,输入的密码不会显示)

2、使用exit指令退出mysql

Linux和mysql中的普通用户和root用户

情景假设:如果我是LInux系统中的一个普通用户张三,现在我自己进入了mysql,此时我在mysql客户端中的用户名称是什么?我作为mysql的普通用户可以自行提权到mysql的超级用户吗?作为mysql的普通用户我如何访问Linux中的/var/lib/mysql 目录?

1、当以普通 Linux 用户 张三 进入 MySQL 客户端,那么你在mysql客户端的用户名称取决于-u选项后的内容,如果是以-u root的方式登录,那么你就是mysql客户端的超级用户、如果以-u xxx的方式登录,那么你就是mysql客户端的一名叫xxx的普通用户、如果不用-u选项直接登录,那么你在mysql客户端就是一个叫张三的普通用户

2、不能! MySQL 的权限系统与 Linux 的 sudo 机制不同,普通 MySQL 用户无法随意提升为 root,除非在登录时采用-u root的方式 或者 MySQL root 账户已授予您更高权限

3、不能!/var/lib/mysql 归属于 Linux mysql 用户,只有 Linux的 mysql 用户和 root 用户可以访问 /var/lib/mysql,而Linux的 mysql 用户是当你安装 MySQL 服务器时,系统会自动创建一个 mysql 用户(Linux 用户),这个用户专门用于运行 MySQL 服务器 (mysqld) 进程

优点:即使攻击者获取了 MySQL root 权限,也无法通过它直接控制系统文件或其他服务

查看、创建与使用

​在 MySQL 等数据库系统中,SQL 语句通常以分号(;)作为结束符

1、使用show databases;指令列出当前 MySQL 服务器上所有可用的数据库,Linux中的 /var/lib/mysql 目录是 MySQL 在 Linux 系统中的默认数据存储目录(需要Linux中的root权限才能进入),可以在该目录中找到新建的数据库文件

2、使用create database xxx;指令创建一个新的名叫xxx的数据库,创建后在Linux中的 /var/lib/mysql目录下可以看到新增的数据库文件,同时show databases;也可以看到可用的数据库多了一个

3、使用use xxx;指令使用/切换名为xxx的数据库(类似于cd /xxx),然后使用creata table xxx(字段名 数据类型 [约束]);指令在xxx数据库中创建一个名为xxx的表,接着使用insert into xxx(字段名1,字段名2,字段名3...)values(?,?,?...);指令向表中插数据,最后可以通过selete * from xxx;指令查询名为xxx表中的数据

基础语法:
create table 表名 (字段名1 数据类型 [约束],字段名2 数据类型 [约束],...
);

简单应用

        创建一个统计学生信息的数据库:create database school;创建school数据库、use school;进入该数据库、create table student(id int,name varchar(32),gender varchar(2));创建存放学生信息的名为student的表、select * from school;查看school数据库中所有的表

MySQL 数据库在 Linux 文件系统中的存储结构

基本概念:新建xxx数据库时在Linux的/var/lib/mysql下也会新建一个xxx目录、在该数据库中新建yyy表时在 /var/lib/mysql/xxx下会新建yyy文件数据库本质也是文件,只不过这些文件并不由程序员直接操作,而是交给了mysqld进行管理,采用数据库是因为虽然普通文件也提供了数据存储的功能,但还需要用户自行管理,而数据库可以让用户只负责提出数据填写的要求即可剩余事情不用关心

数据库、数据库服务、数据库管理系统(宏观)

基本概念:数据库指以特定结构存储在磁盘或内存中的数据集合(一种概念),而数据库服务指由数据库管理系统(DBMS) 提供的一种能进行数据存储、检索和管理的网络服务,常见的DBMS包括SQL Server、Oracle、MySQL等(使用netstat -lntp指令查看MySQL当前的网络连接状态,从而验证网络服务的说法)

Client 发送 SQL 语句 → ✅ Server 解析并执行 → ✅ 操作数据库(DB)中的表(Table)

微观下的DBMS

基本概念:DBMS的客户端和服务器端的名字都不同,但是功能都类似,比如下载的DBMS是SQL Server,那么执行的环境与指令是下面这样的,类似于MySQL的mysql命令行

sqlcmd> SELECT name FROM sys.databases;
sqlcmd> GO
...
sqlcmd> CREATE TABLE Users (ID INT IDENTITY(1,1) PRIMARY KEY,Name VARCHAR(50),Age INT);
sqlcmd> GO
...

SQL语言及其分类DDL、DCL、DML

基本概念:SQL(Structured Query Language,结构化查询语言)是一种用于操作数据库的标准语言,可以将 SQL 语言分为 DDL(Data Definition Language)(数据定义语言,负责“创建和修改数据库结构”)、DML(Data Manipulation Language)(数据操作语言,负责“对数据进行增删改查”、DCL(Data Control Language)(数据控制语言,负责“用户权限管理”、TCL(Transaction Control Language)(事务控制语言,负责“事务控制”

注意事项:SQL 在不同的DBMS中的差异,可以类比于 C++ 和 Java 等编程语言的关系。即基本语法和核心概念相似,但处理时都是按照自己的SQL解析规则进行的(C++和JAVA都基于C,但是在编译器处理指令时不会把它们的指令都转换为C语言再执行,类似地,SQL Server 不会把 SELECT TOP 10 转换成 MySQL 的 LIMIT 10 语句再执行,而是直接按照自己的 SQL 解析器处理指令)

MySQL中数据库的常见操作

清屏指令是system clear

字符集和校验规则

字符集:决定数据库如何存储和表示文本数据,即一个字符在数据库中如何编码成二进制数据

比如UTF-8字符集(多字节字符集,每个字符占多个字节)能存储几乎所有语言的字符,适用于国际化应用,如支持中、英、法等多种语言的系统;而Latin1字符集(单字节字符集,每个字符只占用一个字节)只适用于西欧语言

校验集:定义字符串的比较和排序规则,即数据库如何判断两个字符串是否相等,或如何进行排序

比如utf8_bin校验集进行二进制比较,即完全按照字符的编码值来比较和排序("Hello" 和 "hello" 被认为是不同的);而MySQL的默认校验集utf8_general_ci对大小写不敏感 "Hello" 和 "hello" 视为相同

1、使用show variables like 'character_set_database';指令查看系统默认字符集

2、使用show variables like 'collation_database';指令查看系统默认字符集的校验规则 

3、使用show charset;指令查看数据库支持的字符集

4、使用show collation;指令查看数据库支持的字符集校验规则(太多了不展示)

简单验证

1、创建两个使用不同校验集的数据库t1和t2,此时它们都使用我的MySQL系统中的默认字符集utf8m64:

2、 分别进入t1和t2数据库并在它们中都建一张表,并插入数据进行查找,发现字符集相同但是比较集不同时查找到的结果可能不同

删除数据库

指令:drop database 数据库名称;

注意事项:不建议直接删除数据库,因为所有表和数据都会消失,无法直接恢复(除非有备份),MySQL 不会有确认提示,除非你手动设置了保护机制

查看当前数据库

指令:select database();

修改数据库的字符集和校验集

注意事项:在 MySQL 中,数据库本身不能直接修改,但你可以通过 修改字符集、重命名数据库、调整权限 等方式来间接修改数据库,且只影响当前数据库中后续新建的表,不会改变已有表的数据编码方式

修改数据库字符集指令:alter database 数据库名 characterset=字符集;

修改数据库校验集指令:

  • 修改后的校验集与原子字集兼容,例如将 utf8mb4_general_ci 改为 utf8mb4_unicode_ci(同属 utf8mb4 字符集)alter database 数据库名 collate 校验规则;
  • 修改后的校验集与原字符集不兼容,例如从 latin1_swedish_ci 改为 utf8mb4_unicode_cialter database 数据名库 characterset=字符集 collate 校验规则

修改现有表的字符集和校验集指令:alter table 现有表名 convert to characterset 字符集 collate校验规则

注意事项:转换字符集可能导致数据丢失,核心原则是数据一致性 > 性能 > 灵活性

查看MySQL 数据库的创建语句(包括其字符集等信息)

指令:show create database 数据库名;

  • Database:数据库的名称
  • Create Database :创建该数据库所需的 SQL 语句,其中包含数据库的字符集设置(mm数据库的字符集是utf8mb4,校验集是utf8mb4_0900_ai_ci)

数据库的排序

指令:order by 列名 [ASC升序  / DESC降序];(升序从小到大,降序从大到小)

注意事项:如果未指定排序顺序,ORDER BY 默认使用升序

1、使用select * from school order by age;指令查询 school 表,按年龄升序排列

2、使用select * from school order by score DESC;指令查询 school 表,按分数降序排列

3、使用select * from school order by height DESC,weight ASC;首先按身高升序排列;如果身高相同,再按体重降序排列(受到身高排序的影响,提供的排序是混乱的)

数据库的备份与恢复

使用工具:mysqldump(安装MySQL时自带)

备份单个数据库:使用mysqldump -u root -p school > school.sql;指令将school数据库备份到school.sql文件中(.sql文件被放在Linux中进入mysql命令行前的目录中保存,也可使用绝对路径进行指明)

-u root:是为了能由足够的权限进行备份

-p密码:指定连接当前MySQL的密码,密码要紧跟-p

备份多个数据库:使用mysqldump -u root -p --databases school mm > all.sql;指令将school数据库和mm数据库统一备份到all.sql文件中

备份数据库中的某些表:使用mysqldump -u root -p school students teacher > school_tables_backup.sql;指令将school数据库中的两个表students和teachers备份到school_tables_backup.sql文件中

仅备份数据库中的结构:使用mysqldump -u root -p --no-data school > school_structure.sql;指令将school数据库中以不包含数据的方式备份到school_structure.sql文件中

恢复备份:使用mysql -u root -p school < school.sql;指令将备份恢复到school数据库(恢复前要先创建一个空间school数据库)

注意事项:备份的是该数据库以前历史上的所有操作,包括操作中涉及的数据,恢复时会把这些操作全部再运行一次,这样就得到一份一模一样的数据库

查看数据库的连接状态

指令:show processlist;(发现数据库运行缓慢时使用)

  • Id:进程的唯一标识符。例如,523 是当前活动进程的 ID
  • User:执行查询的用户。比如 event_schedulerroot
  • Host:发起连接的主机。比如,两个进程的主机都是 localhost
  • db:当前进程连接的数据库。在这张图中,event_scheduler 进程未连接数据库,而 root 进程连接了 school 数据库
  • Command:表示进程当前正在执行的命令类型。例如,Daemon 表示事件调度器,Query 表示正在执行 SQL 查询
  • Time:进程已执行的时间(以秒为单位)。例如,event_scheduler 已运行了 99874 秒,而 root 进程的执行时间为 0
  • State:进程当前的状态。例如,Waiting on empty queue 表示事件调度器在等待一个空队列,init 表示 root 进程刚开始初始化查询
  • Info:显示有关进程的附加信息。event_scheduler 进程没有附加信息,而 root 进程正在执行 show processlist 查询

MySQL中表的常见操作

表的创建

完整语法:

create table 表名 (列名1 列中所存储数据的数据类型 列的约束条件用于限制列中的数据 comment '对于列中数据的提示语',列名2 列中所存储数据的数据类型 列的约束条件用于限制列中的数据 comment '对于列中数据的提示语',列名3 列中所存储数据的数据类型 列的约束条件用于限制列中的数据 comment '对于列中数据的提示语',...[表级约束]
)charste=表的字符集 collate 表的校验规则 engine 存储引擎;
  • 如果没有设定字符集和校验规则,那么就按照当前表所在数据库的字符集和校验规则 

        采用不同存储引擎建立的表在Linux中文件的个数也不同,user1表采用MyISAM存储引擎,user2表采用InnoDB存储引擎,前者的对应文件个数为2.MYD和.MYI,后者为1.ibd

表的查看

1、查看当前数据库的所有表:show tables;

2、查看某个表的结构:desc 表名;

  • Field:字段/列名字
  • Type:字段类型
  • Null:是否允许该字段为空。值可以是 YESNO
  • Key:索引类型
  • Default:字段的默认值。如果没有插入数据时指定该字段的值,数据库会使用该默认值
  • Extra:扩充

 3、查看创建表时的详细操作信息:show create table 表名 \G(这里不用冒号)

  • 虽然在建表时命令输入可能不够规范和整齐,但当 MySQL 服务器接收到客户端请求后,会对语法进行分析和整理,最终在查询结果中展示出整洁的命令

表的插入

指令:insert into 表名 values(数据1,数据2...);(该表必须已经存在)

表的修改

1、修改表名:alter table 旧表名 rename to 新表名;

2、 添加字段:alter table 表名 add 新字段名 字段的数据类型 comment '图片路径' after Field;(不加after Field也行,然后新字段名就会在birthday后了)

补充:如果我们此时再show create table user \G会发现虽然是后来新增的插入但是仍然会被整齐的放入()中

3、 修改字段的属性:alter table 表名 modify 字段名 属性 ...;(..表示后续的一些内容要补全防止覆盖掉原来后面的comment等内容)

4、删除字段:alter table 表名 drop 字段名;(删除后该字段原本的数据都会被删除,要小心)

5、修改字段名:alter table 表名 change 旧字段名 新字段名 数据类型...;(修改后的新字段需要重新完整定义一次,否则会报错)

表的删除

指令:drop  table 表名;

!!不要轻易进行表的修改和删除!!

~over~

相关文章:

Ubuntu下MySQL的安装与使用(一)

目录 用户切换 MySQL的安装 MySQL的初步使用 登录与退出 Linux和mysql中的普通用户和root用户 查看、创建与使用 简单应用 MySQL 数据库在 Linux 文件系统中的存储结构 数据库、数据库服务、数据库管理系统&#xff08;宏观&#xff09; 微观下的DBMS SQL语言及其分…...

步进电机软件细分算法解析与实践指南

1. 步进电机细分技术概述 步进电机是一种将电脉冲信号转换为角位移的执行机构&#xff0c;其基本运动单位为步距角。传统步进电机的步距角通常为 1.8&#xff08;对应 200 步 / 转&#xff09;&#xff0c;但在高精度定位场景下&#xff0c;这种分辨率已无法满足需求。细分技术…...

pytorch retain_grad vs requires_grad

requires_grad大家都挺熟悉的&#xff0c;因此穿插在retain_grad的例子里进行捎带讲解就行。下面看一个代码片段&#xff1a; import torch# 创建一个标量 tensor&#xff0c;并开启梯度计算 x torch.tensor(2.0, requires_gradTrue)# 中间计算&#xff1a;y 依赖于 x&#x…...

RabbitMQ消息队列中间件安装部署教程(Windows)-2025最新版详细图文教程(附所需安装包)

目录 前言 一、安装Erlang环境 1、下载Erlang安装包 2、安装Erlang 3、设置环境变量 二、安装RabbitMQ环境 1、下载RabbitMQ安装包 2、安装RabbitMQ 3、设置环境变量 三、启动RabbitMQ 1、开启RabbitMQ管理插件 2、启动RabbitMQ 四、访问RabbitMQ 前言 RabbitMQ 是…...

vue-cli3+vue2+elementUI+avue升级到vite+vue3+elementPlus+avue总结

上一个新公司接手了一个vue-cli3vue2vue-router3.0elementUI2.15avue2.6的后台管理项目&#xff0c;因为vue2在2023年底已经不更新维护了&#xff0c;elementUI也只支持到vue2&#xff0c;然后总结了一下vue3的优势&#xff0c;最后批准升级成为了vitevue3vue-router4.5element…...

车载以太网测试-3【Wireshark介绍】

1 摘要 Wireshark 是一款开源的网络协议分析工具&#xff0c;广泛用于网络故障排查、协议分析、网络安全检测等领域。它能够捕获网络数据包&#xff0c;并以详细的、可读的格式显示这些数据包的内容。广泛应用于车载网络测试&#xff0c;是车载网络测试工程师必须掌握的工具。…...

扫雷雷雷雷雷雷雷

大家好啊&#xff0c;我是小象٩(๑ω๑)۶ 我的博客&#xff1a;Xiao Xiangζั͡ޓއއ 很高兴见到大家&#xff0c;希望能够和大家一起交流学习&#xff0c;共同进步。 这一节课我们不学习新的知识&#xff0c;我们来做一个扫雷小游戏 目录 扫雷小游戏概述一、扫雷游戏分析…...

图片分类实战:食物分类问题(含半监督)

食物分类问题 simple_class 1. 导入必要的库和模块 import random import torch import torch.nn as nn import numpy as np import os from PIL import Image #读取图片数据 from torch.utils.data import Dataset, DataLoader from tqdm import tqdm from torchvision impo…...

RuoYi框架添加自己的模块(学生管理系统CRUD)

RuoYi框架添加自己的模块&#xff08;学生管理系统&#xff09; 框架顺利运行 首先肯定要顺利运行框架了&#xff0c;这个我不多说了 设计数据库表 在ry数据库中添加表tb_student 表字段如图所示 如图所示 注意id字段是自增的 注释部分是后面成功后前端要展示的部分 导入…...

机器学习在地图制图学中的应用

原文链接&#xff1a;https://www.tandfonline.com/doi/full/10.1080/15230406.2023.2295948#abstract CSDN/2025/Machine learning in cartography.pdf at main keykeywu2048/CSDN GitHub 核心内容 本文是《制图学与地理信息科学》特刊的扩展评论&#xff0c;系统探讨了机…...

【JAVA架构师成长之路】【电商系统实战】第9集:订单超时关闭实战(Kafka延时队列 + 定时任务补偿)

30分钟课程&#xff1a;订单超时关闭实战&#xff08;Kafka延时队列 定时任务补偿&#xff09; 课程目标 理解订单超时关闭的业务场景与核心需求。掌握基于 Kafka 延时队列与定时任务的关单方案设计。实现高并发场景下的可靠关单逻辑&#xff08;防重复、幂等性&#xff09;。…...

《探秘课程蒸馏体系“三阶训练法”:解锁知识层级递进式迁移的密码》

在人工智能与教育科技深度融合的时代&#xff0c;如何高效地实现知识传递与能力提升&#xff0c;成为众多学者、教育工作者以及技术专家共同探索的课题。课程蒸馏体系中的“三阶训练法”&#xff0c;作为一种创新的知识迁移模式&#xff0c;正逐渐崭露头角&#xff0c;为解决这…...

K8s 1.27.1 实战系列(六)Pod

一、Pod介绍 1、Pod 的定义与核心设计 Pod 是 Kubernetes 的最小调度单元,由一个或多个容器组成,这些容器共享网络、存储、进程命名空间等资源,形成紧密协作的应用单元。Pod 的设计灵感来源于“豌豆荚”模型,容器如同豆子,共享同一环境但保持隔离性。其核心设计目标包括…...

Java CountDownLatch 用法和源码解析

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…...

Unity引擎使用HybridCLR(华佗)热更新

大家好&#xff0c;我是阿赵。   阿赵我做手机游戏已经有十几年时间了。记得刚开始从做页游的公司转到去做手游的公司&#xff0c;在面试的时候很重要的一个点&#xff0c;就是会不会用Lua。使用Lua的原因很简单&#xff0c;就是为了热更新。   热更新游戏内容很重要。如果…...

深度学习进阶:神经网络优化技术全解析

文章目录 前言一、优化问题的本质1.1 目标1.2 挑战 二、梯度下降优化算法2.1 基础SGD2.2 动量法2.3 Adam优化器 三、正则化技术3.1 L2正则化3.2 Dropout 四、学习率调度4.1 为什么要调度&#xff1f;4.2 指数衰减4.3 ReduceLROnPlateau 五、实战优化&#xff1a;MNIST案例5.1 完…...

肿瘤检测新突破:用随机森林分类器助力医学诊断

前言 你有没有想过,科技能不能在肿瘤检测中发挥巨大的作用?别着急,今天我们将带你走进一个“聪明”的世界,通过随机森林分类器进行肿瘤检测。对,你没听错,机器学习可以帮助医生更快、更准确地判断肿瘤是良性还是恶性,就像医生口袋里的“超级助手”一样,随时准备提供帮…...

DeepSeek学习 一

DeepSeek学习 一 一、DeepSeek是什么&#xff1f;二、Deepseek可以做什么&#xff1f;模型理解提问内容差异使用原则 模式认识三、如何提问&#xff1f;RTGO提示语结构CO-STAR提示语框架DeepSeek R1提示语技巧 总结 一、DeepSeek是什么&#xff1f; DeepSeek是一家专注通用人工…...

编程考古-Borland历史:《.EXE Interview》对Anders Hejlsberg关于Delphi的采访内容(上)

为了纪念Delphi在2002年2月14日发布的25周年(2020.2.12),这里有一段由.EXE杂志编辑Will Watts于1995年对Delphi首席架构师Anders Hejlsberg进行的采访记录。在这次采访中,Anders讨论了Delphi的设计与发展,以及即将到来的针对Windows 95的32位版本。 问: Delphi是如何从T…...

高并发之接口限流,springboot整合Resilience4j实现接口限流

添加依赖 <dependency><groupId>io.github.resilience4j</groupId><artifactId>resilience4j-spring-boot2</artifactId><version>1.7.0</version> </dependency><dependency><groupId>org.springframework.boot…...

电脑如何拦截端口号,实现阻断访问?

如果你弟弟喜欢玩游戏&#xff0c;你可以查询该应用占用的端口&#xff0c;结合以下方法即可阻断端口号&#xff0c;让弟弟好好学习&#xff0c;天天向上&#xff01; 拦截端口可以通过防火墙和路由器进行拦截 &#xff0c;以下是常用方法&#xff1a; 方法 1&#xff1a;使用…...

RK3588 安装ffmpeg6.1.2

在安装 ffmpeg 在 RK3588 开发板上时,你需要确保你的开发环境(例如 Ubuntu、Debian 或其他 Linux 发行版)已经设置好了交叉编译工具链,以便能够针对 RK3588 架构编译软件。以下是一些步骤和指导,帮助你安装 FFmpeg: 1. 安装依赖项 首先,确保你的系统上安装了所有必要的…...

SQL SELECT DISTINCT 语句

在 SQL 中&#xff0c;SELECT DISTINCT 语句用于从表中查询不重复的值。这对于需要从数据库检索唯一值时非常有用。DISTINCT 关键字会去除结果集中重复的行&#xff0c;只返回唯一的记录。 SELECT DISTINCT column1, column2, ... FROM table_name; column1, column2, ... 是…...

MELON的难题

MELON的难题 真题目录: 点击去查看 E 卷 200分题型 题目描述 MELON有一堆精美的雨花石(数量为n,重量各异),准备送给S和W。MELON希望送给俩人的雨花石重量一致,请你设计一个程序,帮MELON确认是否能将雨花石平均分配。 输入描述 第1行输入为雨花石个数: n,0 < n &l…...

Restful 接口设计规范

一、资源与 URL 1. 使用名词表示资源 URL 应该以名词为主&#xff0c;用来表示具体的资源&#xff0c;而不是动词。例如&#xff0c;/users 表示用户资源集合&#xff0c;/users/{id} 表示单个用户资源。 2. 采用复数形式 一般来说&#xff0c;资源的 URL 应该使用复数形式…...

Java后端高频面经——Spring、SpringBoot、MyBatis

Spring定义一个Bean有哪些方法&#xff1f;依赖注入有哪些方法&#xff1f; &#xff08;1&#xff09;定义Bean的方法 注解定义Bean&#xff0c;Component 用于标记一个类作为Spring的bean。当一个类被Component注解标记时&#xff0c;Spring会将其实例化为一个bean&#xff0…...

扩散模型中三种加入条件的方式:Vanilla Guidance,Classifier Guidance 以及 Classifier-Free Guidance

扩散模型主要包括两个过程&#xff1a;前向扩散过程和反向去噪过程。前向过程逐渐给数据添加噪声&#xff0c;直到数据变成纯噪声&#xff1b;反向过程则是学习如何从噪声中逐步恢复出原始数据。在生成过程中&#xff0c;模型从一个随机噪声开始&#xff0c;通过多次迭代去噪&a…...

Banana Pi OpenWRT One Wifi6 OpenWrt社区官方开源路由器评测

第一款不可破解、开源、版权软件、符合 FCC、CE 和 RoHS 的维修权路由器 OpenWRT项目今年已经20岁了&#xff0c;为了纪念这一时刻&#xff0c;Banana Pi OpenWrt One/AP-24.XY路由器开发系统已经上市。这是OpenWRT团队与硬件公司的第一个联合项目。选择 Banana Pi&#xff0c;…...

9.1go结构体

Go不是完全面向对象的&#xff0c;没有类的概念&#xff0c;所以结构体应该承担了更多的责任。 结构体定义 使用 type 和 struct 关键字定义&#xff1a; type Person struct { Name string Age int } 字段可以是任意类型&#xff0c;包括其他结构体或指针。 字段名以大写…...

Manus全球首个通用Agent,Manus AI:Agent应用的ChatGPT时刻

文章目录 前言Manus AI: 全球首个通用AgentManus AI: 技术架构与创始人经历AI Agent的实现框架与启示AI Agent的发展预测行业风险提示 前言 这是一篇关于Manus AI及其在通用人工智能领域的应用和前景的报告&#xff0c;主要介绍了Manus AI的产品定位、功能、技术架构、创始人经…...