mysql之基本概念与安装

一 数据库的基本概念

1.1 数据

记录个体的信息

1.2 表

存放信息的集合,行于与列

1.3 数据库 

数据库就是表的集合。它是以一定的组织方式存储的相互有关的数据集合

1.4 数据库管理系统

数据库管理系统(DatabaseManagementSystem,DBMS)是实现对数据库资源有效组织、管理和存取的系统软件。它在操作系统的支持下,支持用户对数据库的各项操作

BMS五大功能:

1)建立和维护:包括建立数据库的结构和数据的录入与转换、数据库的 转储与恢复、数据库的重组与性能监视等功能。

2)数据定义:包括定义全局数据结构、局部逻辑数据结构、存储结构、保密模式及信息格式等功能。保证存储在数据库中的数据正确、有效和相容,以防止不合语义的错误数据被输入或输出。

3)数据操纵:包括数据查询统计和数据更新两个方面。

4)运行管理:这是数据库管理系统的核心部分,包括并发控制、存取控 制、数据库内部维护等功能。

5)通信:DBMS 与其他软件系统之间的通信,如 Access 能与其他 Office 组件进行数据交换。

1.5 数据库系统

数据库系统(DatabaseSystem,DBS)是一个人机系统,一般由硬件、操作系统、数据库、DBMS、应用软件和数据库用户(包括数据库管理员)组成。用户可以通过 DBMS 操作数据库,也可以通过应用程序操作数据库。

应用程序是利用DBMS为解决某个具体的管理或数据处理的任务而编制的一系列命令的有序集合。如果应用程序比较完善,能够提供友好的人机界面,并编译成可执行文件发行,使得普通用户不需要具备计算机的专业知识,在较短时间就学会使用,那么就称为数据库应用软件。 navicat

常用的数据库应用软件有人事管理、财务管理、图书管理等信息管理软件及各类信息咨 询系统等。

数据库管理员(DatabaseAdministrator,DBA)负责数据库的更新和备份、数据库系统的维护、用户管理等工作,保证数据库系统的正常运行。DBA 一般由业务水平较高、资历较深的人员担任。

需要注意的是数据库、数据库系统、数据库管理系统,甚至数据库表等名词,在日常讨论中通常不严格区别。遇到此情况时,可以根据具体情况,判断出实际所指的是什么。

1.6 DBMS的工作模式:

1>接受应用程序的数据请求和处理请求

2>将用户的数据请求(高级指令)转换为复杂机器代码(底层指令)

3>实现对数据库的操作

4>从数据库的操作中接受查询结果

5>对查询结果进行处理(格式转换)

6>将处理结果返回给用户

二 mysql发展史

MySQL的历史可以追溯到1979年,它的创始人叫作Michael Widenius,他在开发一个报表工具的时候,设计了一套API,后来他的客户要求他的API支持sql语句,他直接借助于mSQL(当时比较牛)的代码,将它集成到自己的存储引擎中。但是他总是感觉不满意,萌生了要自己做一套数据库的想法。

直到1996年,MySQL 1.0发布,Michael Widenius的大女儿的简称就是MY,Michael Widenius大概也是把MySQL当成自己的女儿一样来对待.仅仅过了几个月的时间,1996年10月MySQL 3.11.1当时发布了Solaris的版本,一个月后,linux的版本诞生,从那时候开始,MySQL慢慢的被人所接受。

1999年,Michael Widenius成立了MySQL AB公司,MySQL由个人开发转变为团队开发,2000年使用GPL协议开源。

2001年,MySQL生命中的大事发生了,那就是存储引擎InnoDB的诞生!Oracle在2005年收购了InnoDB,只不过InnoDB一直以来都只能作为第三方插件供用户选择。直到现在,MySQL可以选择的众多存储引擎中,InnoDB依然是第一选择

2008年1月,MySQL AB公司被Sun公司以10亿美金收购,MySQL数据库进入Sun时代。Sun为MySQL的发展提供了绝佳的环境,2008年11月,MySQL 5.1发布,MySQL成为了最受欢迎的小型数据库。

2009年4月,Oracle公司以74亿美元收购Sun公司,MySQL也随之进入Oracle时代。

2010年12月,MySQL 5.5发布,Oracle终于把InnoDB做成了MySQL默认的存储引擎,MySQL从此进入了辉煌时代。

然而,从那之后,Oracle对MySQL的态度渐渐发生了变化,Oracle虽然宣称MySQL依然尊少GPL协议,但却暗地里把开发人员全部换成了Oracle自己人,开源社区再也影响不了MySQL发展的脚步,真正有心做贡献的人也被拒之门外,MySQL随时都有闭源的可能……看着自己辛苦养大的MySQL被Oracle搞成这样,Michael Widenius非常失望,决定在MySQL走向闭源前,将MySQL进行分支化,依然是使用了自己小女儿的名字MariaDB(玛莉亚DB)。MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB来代替MySQL的InnoDB。MariaDB由MySQL的创始人Michael Widenius主导,由开源社区的大神们进行开发。因此,大家都认为,MariaDB拥有比MySQL更纯正的MySQL血脉。最初的版本更新与MySQL同步,相对MySQL5以后的版本,MariaDB也有相应的5.1~5.5的版本。后来MariaDB终于摆脱了MySQL,它的版本号直接从10.0开始,以自己的步伐进行开发,当然,还是可以对MySQL完全兼容。

1979年:TcX公司 Monty Widenius,Unireg
1996年:发布MySQL1.0,Solaris版本,Linux版本
1999年:MySQL AB公司,瑞典
2003年:MySQL 5.0版本,提供视图、存储过程等功能
2008年:Sun公司 以10亿美元收购MySQL
2009年:Oracle公司以 74 亿美元收购 sun 公司
2009年:Monty成立MariaDB

1 logo及命名

说完公司,该说一下设计师了,乌尔夫·米卡埃尔·维德纽斯,常昵称作蒙提(Monty),芬兰程序员与企业家,开放源代码数据库MySQL的主要设计者,同时也是MySQL AB公司的创始成员和现任MariaDB的首席技术官。

命名

关于MySQL的命名,他的前妻生育有女儿米(My),MySQL得名于她,而MariaDB是以其第二任妻子生的女儿玛莉亚(Maria)命名的。

logo

MySQL的海豚标志的名字叫“sakila”,它是由MySQLAB的创始人从用户在“海豚命名”的竞赛中建议的大量的名字表中选出的。获胜的名字是由来自非洲斯威士兰的开源软件开发者AmbroseTwebaze提供。根据Ambrose所说,Sakila来自一种叫SiSwati的斯威士兰方言,也是在Ambrose的家乡乌干达附近的坦桑尼亚的Arusha的一个小镇的名字。

2 MySQL与MariaDB

二者都是出自一个人的杰作,(由于都是以女儿的名字命名,个人感觉和姐姐与妹妹的关系类似),因其与MySQL保持着高度的兼容性,相应的版本可以直接替换。

虽说MySQL出身早于Mariadb,但功能方面可不敢说比Mariadb更加强大,相对于MySQL,其有更多新选项、扩展、存储引擎及漏洞修复。

3 发展的三个阶段:

1、 层次型和网状型: 代表产品是1969年IBM公司研制的层次模型数据库管理系统IMS。
2、 关系型数据型库: 目前大部分数据库采用的是关系型数据库。1970年IBM公司的研究员E.F.Codd提出了关系模型。其代表产品为sysem R和Inges。
3、第三代数据库将为更加丰富的数据模型和更强大的数据管理功能为特征,以提供传统数据库系统难以支持的新应用。它必须支持面向对象,具有开放性,能够在多个平台上使用。管理技术的3个阶段1 人工管理2 文件管理3 数据库系统

Mysql三大主要分支

  • mysql
  • mariadb
  • percona Server

Mysql:https://www.mysql.com/

Mariadb:http://mariadb.org/

Percona Server:https://www.percona.com

4 版本演变

MySQL:5.1 --> 5.5 --> 5.6 --> 5.7 ----->6.0 - --->7.0 --> 8.0

MariaDB:5.1 -->5.5 -->10.0--> 10.1 --> 10.2 --> 10.3 --> 10.4 --> 10.5

MySQL被Sun收购后,搞了个过渡的6.0版本,没多久就下线了,后来被Oracle收购后,终于迎来了像样的5.6版本,之后就是5.7、8.0版本。由于6.0版本号已被用过,7.x系列版本专用于NDB Cluster,因而新版本号从8.0开始

5 主流数据库

数据库排名:DB-Engines Ranking - popularity ranking of database management systems

三 关系型数据库和非关系数据库

1 关系数据库

关系数据库的存储结构是二维表格在每个二维表中
每一行称为一条记录,用来描述一个对象的信息。每一列称为一个字段,用来描述对象的一个属性

优点:

1、易于维护:都是使用表结构,格式一致;
2、使用方便:SQL语言通用,可用于复杂查询;
3、复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。

缺点:

1、读写性能比较差,尤其是海量数据的高效率读写;
2、固定的表结构,灵活度稍欠;
3、高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。


2 非关系数据库

非关系数据库也被称作NOSQL (Not Only SQL)存储数据不以关系模型为依据,不需要固定的表格

优点

存储在内存中

数据库可高并发读写

对海量数据高效率存储与访问

数据库具有高扩展性与高可用性

常用的非关系数据库:Redis、mongoDB等

缺点:

1、不提供sql支持,学习和使用成本较高;
2、无事务处理;
3、数据结构相对复杂,复杂查询方面稍欠。
4、好多数据写在内存中

四 安装mysql

[root@localhost ~]#yum install gcc gcc-c++ ncurses ncurses-devel bison cmake -y
#gcc \                  #解包的工具
#gcc-c++ \              #解包的工具
#ncurses \				#字符终端下图形互动功能的动态库
#ncurses-devel \	    #ncurses开发包
#bison \				#语法分析器
#cmake					#mysql需要用cmake编译安装[root@localhost ~]#useradd -s /sbin/nologin mysql
##创建程序用户管理#准备软件包mysql-5.7.17.tar.gz  boost_1_59_0.tar.gz(boost是建设数据包)
[root@localhost ~]#tar zxvf mysql-5.7.17.tar.gz -C /opt
[root@localhost ~]#tar zxvf boost_1_59_0.tar.gz -C /usr/local/
[root@localhost ~]#mv /usr/local/boost_1_59_0 /usr/local/boost
[root@localhost ~]#cd /opt/mysql-5.7.17/[root@localhost mysql-5.7.17]#cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8  \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=/usr/local/boost \
-DWITH_SYSTEMD=1#cmake \
#-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \		#指定mysql的安装路径
#-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ #指定mysql进程监听套接字文件(数据库连接文#件)的存储路径
#-DSYSCONFDIR=/etc \                             #指定配置文件的存储路径
#-DSYSTEMD_PID_DIR=/usr/local/mysql \            #指定进程文件的存储路径
#-DDEFAULT_CHARSET=utf8  \                       #指定默认使用的字符集编码,如 utf8
#-DDEFAULT_COLLATION=utf8_general_ci \			#指定默认使用的字符集校对规则
#-DWITH_EXTRA_CHARSETS=all \						#指定支持其他字符集编码
#-DWITH_INNOBASE_STORAGE_ENGINE=1 \              #安装INNOBASE存储引擎
#-DWITH_ARCHIVE_STORAGE_ENGINE=1 \               #安装ARCHIVE存储引擎 
#-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \             #安装BLACKHOLE存储引擎 
#-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \            #安装FEDERATED存储引擎 
#-DMYSQL_DATADIR=/usr/local/mysql/data \         #指定数据库文件的存储路径
#-DWITH_BOOST=/usr/local/boost \                 #指定boost的路径,若使用mysql-boost集成包#安装则
#-DWITH_BOOST=boost
#-DWITH_SYSTEMD=1								#生成便于systemctl管理的文件#注意:如果在CMAKE的过程中有报错,当报错解决后,需要把源码目录中的CMakeCache.txt文件删除,然后再重新CMAKE,否则错误依旧[root@localhost mysql-5.7.17]#make
[root@localhost mysql-5.7.17]#make install
[root@localhost mysql-5.7.17]#chown -R mysql:mysql /usr/local/mysql/
#更改管理主/组
[root@localhost mysql-5.7.17]#chown mysql:mysql /etc/my.cnf
#为了mysql服务启用的时候可以调用my.cnf配置
[root@localhost mysql-5.7.17]#vim /etc/my.cnf
#修改配置文件   进入/etc/my.cnf配置后  先删除原有的配置  再键入新的配置内容
[client]									
port = 3306
default-character-set=utf8
socket=/usr/local/mysql/mysql.sock	[mysql]									
port = 3306
default-character-set=utf8
socket=/usr/local/mysql/mysql.sock
auto-rehash[mysqld]
user = mysql 
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306	
character-set-server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
server-id = 1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES[client]									#客户端设置
port = 3306
socket=/usr/local/mysql/mysql.sock			[mysqld]									#服务全局设置
user = mysql       							#设置管理用户
basedir=/usr/local/mysql					#指定数据库的安装目录
datadir=/usr/local/mysql/data				#指定数据库文件的存储路径
port = 3306									#指定端口
character-set-server=utf8					#设置服务器字符集编码格式为utf8
pid-file = /usr/local/mysql/mysqld.pid		#指定pid 进程文件路径
socket=/usr/local/mysql/mysql.sock			#指定数据库连接文件
bind-address = 0.0.0.0						#设置监听地址,0.0.0.0代表允许所有,如允许多个IP需空格隔开
skip-name-resolve							#禁用DNS解析
max_connections=2048						#设置mysql的最大连接数
default-storage-engine=INNODB				#指定默认存储引擎
max_allowed_packet=16M						#设置数据库接收的数据包大小的最大值
server-id = 1								#指定服务ID号sql_mode常用值如下:
NO_ENGINE_SUBSTITUTION
如果需要的存储引擎被禁用或未编译,那么抛出错误。不设置此值时,用默认的存储引擎替代,并抛出一个异常STRICT_TRANS_TABLES
在该模式下,如果一个值不能插入到一个事务表中,则中断当前的操作,对非事务表不做限制NO_AUTO_CREATE_USER
禁正GRANT创建密码为空的用户NO_AUTO_VALUE_ON_ZERO
mysql中的自增长列可以从O开始。默认情况下自增长列是从1开始的,如果你插入值为0的数据会报错NO_ZERO_IN_DATE
不允许日期和月份为零NO_ZERO_DATE
mysql数据库不允许插入零日期,插入零日期会抛出错误而不是警告ERROR_FOR_DIVISION_BY_ZERO
在INSERT或UPDATE过程中,如果数据被零除,则产生错误而非警告。默认情况下数据被零除时MysQL返回NULLPIPES_As_CONCAT
将"||"视为字符串的连接操作符而非或运算符,这和Oracle数据库是一样的,也和字符串的拼接函数Concat相类似ANSI_QUOTES
启用ANSI_QUOTES后,不能用双引号来引用字符串,因为它被解释为识别符[root@localhost mysql-5.7.17]#echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
#设置环境变量  将mysql/bin文件追加到 /etc/profile之后  便于系统识别
[root@localhost mysql-5.7.17]#source /etc/profile
#刷新环境变量
[root@localhost mysql-5.7.17]#tail /etc/profile[root@localhost mysql-5.7.17]#cd /usr/local/mysql/bin/
[root@localhost bin]#./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data./mysqld \
--initialize-insecure \				#生成初始化密码为空
--user=mysql \                      #指定管理用户
--basedir=/usr/local/mysql \        #指定数据库的安装目录
--datadir=/usr/local/mysql/data		#指定数据库文件的存储路径[root@localhost bin]#cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
[root@localhost bin]#systemctl daemon-reload
#刷新systemd管理的服务  识别mysqld服务
[root@localhost bin]#systemctl start mysqld.service
[root@localhost bin]#systemctl enable mysqld
[root@localhost bin]#netstat -anpt | grep 3306
或者lsof -i:3306[root@localhost bin]#mysqladmin -u root -p password "123456"
#设置Mysql初始化密码  执行该命令后直接按回车即可
[root@localhost bin]#mysql -u root -p123456
#登入数据库

①安装编译依赖 

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8  \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=/usr/local/boost \
-DWITH_SYSTEMD=1

 

 

 

 初始化数据

 

给root账户设置密码

登录数据库 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/757126.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Flutter 初始WidgetState 简单应用案例分析

本系列文章主要整理Flutter的知识汇总,由浅入深,从Widget的搭建到其中的原理。本文还是围绕Widget在开发中应用和理解。 关于Flutter环境配置和首次创建可以参考前面文章。链接如下: Flutter 安装部署与认识Dart语言 Flutter 使用AndroidS…

MySQL 搭建双主复制服务 并 通过 HAProxy 负载均衡

一、MySQL 搭建双主复制高可用服务 在数据库管理中,数据的备份和同步是至关重要的环节,而双主复制(Dual Master Replication)作为一种高可用性和数据同步的解决方案,通过让两个数据库实例同时充当主服务器和从服务器&…

Tomcat(Win+Linux)安装教程

Windows环境安装 Tomcat安装及配置教程主要分为四步: 步骤一:确认自己是否已 安装JDK🔍 步骤二:下载安装Tomcat 步骤三:Tomcat配置环境变量 步骤四:验证Tomcat配置是否成功 OK,我们开始&#x…

python 中 float 和 decimal 的区别

decimal --- 十进制定点和浮点运算 — Python 3.11.8 文档请参考官方说明文档: decimal --- 十进制定点和浮点运算 — Python 3.11.8 文档 举例: # 使用 Decimal 类型进行计算 from decimal import Decimaltotal_float 0.1 0.2 total_decimal Decim…

CMU 10-414/714: Deep Learning Systems --hw3

实现功能 在ndarray.py文件中完成一些python array操作 我们实现的NDArray底层存储就是一个一维向量,只不过会有一些额外的属性(如shape、strides)来表明这个flat array在维度上的分布。底层运算(如加法、矩阵乘法)都…

[LeetCode][LCR170]交易逆序对的总数

题目 LCR 170. 交易逆序对的总数 在股票交易中,如果前一天的股价高于后一天的股价,则可以认为存在一个「交易逆序对」。请设计一个程序,输入一段时间内的股票交易记录 record,返回其中存在的「交易逆序对」总数。 示例 1&#xf…

【VUE】前端阿里云OSS断点续传,分片上传

什么是OSS: 数据以对象(Object)的形式存储在OSS的存储空间(Bucket )中。如果要使用OSS存储数据,您需要先创建Bucket,并指定Bucket的地域、访问权限、存储类型等属性。创建Bucket后,您…

React - 实现菜单栏滚动

简介 本文将会基于react实现滚动菜单栏功能。 技术实现 实现效果 点击菜单,内容区域会自动滚动到对应卡片。内容区域滑动,指定菜单栏会被选中。 ScrollMenu.js import {useRef, useState} from "react"; import ./ScrollMenu.css;export co…

线程和进程的区别和联系

一、什么是进程 进程(Process), 是一个具有独立功能的程序关于某个数据集合的一次运行活动,是系统进行 【资源分配和调度】 的一个独立单位。 进程是【程序】的【一次执行】(是计算机中程序的执行过程,而不是计算机中的程序)进程是系统进行【资源分配和…

[LeetBook]【学习日记】排序算法——归并排序

主要思想 归并排序是一种分治算法,其排序过程包括分和治分是指将要排序的序列一分为二、二分为四,直到单个序列中只有一个数治是指在分完后,将每两个元素重新组合,四合为二、二合为一,最终完成排序 图片作者&#xf…

Gitlab部署及使用

1. 简介 GitLab 是一个用于仓库管理系统的开源项目,使用 Git 作为代码管理工具,并在此基础上搭建起来的Web服务。Gitlab是目前被广泛使用的基于 git 的开源代码管理平台,基于Ruby on Rails构建,主要针对软件开发过程中产生的代码…

taro之Picker,PickerView基础用法

1.Picker 直接上代码 import Taro,{Component} from "tarojs/taro"; import {View,Picker} from tarojs/components import { AtIcon } from taro-ui import { putKey } from /src/utils/storage-utilsclass AgriculturePolicy extends Component{constructor (prop…

基于禁忌搜索算法的VRP问题求解matlab仿真,带GUI界面,可设置参数

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1车辆路径问题(Vehicle Routing Problem, VRP)概述 4.2 禁忌搜索算法(Tabu Search, TS)原理 5.完整程序 1.程序功能描述 基于禁忌搜索算法…

漫谈微服务网关

一、什么是服务网关 服务网关 路由转发 过滤器 1、路由转发:接收一切外界请求,转发到后端的微服务上去; 2、过滤器:在服务网关中可以完成一系列的横切功能,例如权限校验、限流以及监控等,这些都可以通过…

【Linux】Linux开发工具-vim / 编译器-gcc/g++ / 调试器-gdb / git操作 / 项目自动化构建工具-make/Makefile

主页:醋溜马桶圈-CSDN博客 专栏:Linux_醋溜马桶圈的博客-CSDN博客 gitee:mnxcc (mnxcc) - Gitee.com 目录 1.在Linux写自己的第一个程序 1.1 nano指令 1.2 nano指令的使用 1.2.1 介绍 1.2.2 演示 1.2.2.1 创建.c文件 1.2.2.2 nano cod…

Java后端八股------设计模式

Coffee可以设计成接口。 b

EPSON XV4001BC陀螺仪传感器汽车导航系统的应用

近年来为了提高汽车应用系统的可靠性,传感器融合系统被越来越多的应用到汽车领域,如汽车导航系统中的行人检测和预碰撞警告等,通过提供精准的导航信息,为驾驶员提供更安全,更稳定,更舒适的出行体验,例如在行人检测系统中,只使用低成本的红外传感器不能检测到行人的实际位置,而利…

本地gitlab-runner的创建与注册

引言 之前通过一些方式在本地创建runner,时而会出现一些未知的坑,所以写下本文记录runner可以无坑创建的方式。 以下注册runner到相应仓库的前提是已经在本地安装了gitlab-runner 具体安装方式见官网 本地gitlab-runner安装常用的指令 查看gitlab r…

5G网络架构及技术(一):入门级介绍

参考资料: [1] 5G网络架构,March 15, 2020 / By Adnan Ghayas [2] 5G应用场景,June 2, 2021 / By Adnan Ghayas [3] 独立和非独立5G网络,September 19, 2020 / By Adnan Ghayas 5G网络架构(一):…

Android14音频进阶:AudioFlinger究竟如何混音?(六十三)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒体系统工程师系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只…