Linux中安装MYSQL数据库
文章目录
- 一、MYSQL数据库介绍
- 1.1、MySQL数据库的基本概述
- 1.2、MySQL数据库的主要特性
- 1.3、MySQL数据库的技术架构与组件
- 1.4、MySQL数据库的应用与扩展性
- 1.5、MySQL数据库的许可模式与开源生态
- 二、MySQL Workbench和phpMyAdmin介绍
- 2.1、MySQL Workbench介绍
- 2.2、phpMyAdmin介绍
- 三、存储引擎InnoDB、MyISAM、Memory介绍
- 3.1、InnoDB
- 3.2、MyISAM
- 3.3、Memory
- 四、ACID事务是什么
- 五、安装MYSQL
- 六、MYSQL操作
- 6.1、修改密码
- 6.2、登陆mysql数据库
- 6.3、增操作
- 6.4、删操作
- 6.5、改操作
- 6.6、查操作
一、MYSQL数据库介绍
MySQL数据库是一款由瑞典MySQL AB公司开发的关系型数据库管理系统,具有跨平台、高性能、多用户访问、事务和非事务的存储机制等特性。
1.1、MySQL数据库的基本概述
- 定义和历史背景:
MySQL最初由瑞典的MySQL AB公司开发,是一个跨平台的关系数据库系统,拥有客户机/服务器体系结构
- 发展历程与现状
几经转手后,MySQL现属于Oracle公司旗下的产品。它被广泛用于Web应用程序、企业应用程序和移动应用程序等多个领域,是目前最流行的开源关系型数据库之一
1.2、MySQL数据库的主要特性
- 跨平台支持:
MySQL可以在多种操作系统上运行,包括Linux、Windows、macOS等,展现出良好的可移植性
- 性能与可靠性:
MySQL具备高效的数据处理能力和高可靠性,支持多线程操作和多用户并发访问,能够自动进行故障转移和数据恢复
- 易用性与管理工具:
安装和配置过程简单,同时提供了一系列易于使用的管理工具,如MySQL Workbench和phpMyAdmin等,方便了数据库的管理和操作
- 编程语言支持:
支持多种编程语言的API,如C、C++、Python、Java等,使得它能轻松集成到各种应用程序中
- 安全性与连接性:
提供了强大的访问控制功能,确保数据安全;完全网络化的设计允许数据库在因特网上的任何地方被访问,实现数据的便捷共享
1.3、MySQL数据库的技术架构与组件
- 存储引擎:
MySQL支持多种存储引擎,包括但不限于MyISAM、InnoDB、Memory引擎等,每种引擎都有其特定的应用场景和优劣
- 索引和优化:
通过索引提高查询效率,同时MySQL支持查询缓存、分区表等技术来进一步优化性能
- 事务处理:
支持ACID事务,确保数据的一致性和完整性,特别是在InnoDB存储引擎下,支持行级锁定和事务处理
1.4、MySQL数据库的应用与扩展性
- Web应用:
MySQL因其开源、性能优异且易于管理的特点,成为众多Web应用程序的首选数据库解决方案
- 企业级应用:
能够满足企业对于大数据量处理和高并发访问的需求,适用于ERP、CRM等企业级应用系统
- 移动端和物联网应用:
随着移动互联网和物联网的发展,MySQL也在这些领域的数据存储和管理中发挥重要作用
1.5、MySQL数据库的许可模式与开源生态
- 双许可模式:
MySQL采用双重许可模式,用户可以根据GNU通用公共许可证使用社区版,或选择购买商业版以获得额外的企业特性和支持
- 开源生态:
作为一个开源项目,MySQL拥有活跃的开发者社区,不仅能够获取丰富的第三方工具和插件,还能受益于社区对问题的快速响应和解决
二、MySQL Workbench和phpMyAdmin介绍
MySQL Workbench和phpMyAdmin是两款常用的MySQL数据库管理工具,各自具有独特的特点和功能。
2.1、MySQL Workbench介绍
MySQL Workbench是一款由MySQL AB(现属于Oracle)开发的桌面应用程序,提供丰富的数据库设计、管理、优化和SQL开发功能。
- 定义与背景:
MySQL Workbench是由MySQL AB(现为Oracle公司)开发的桌面应用程序,主要用于管理MySQL数据库
- 主要功能:
- 数据建模:
提供ER图、Relational模型和UML模型等多种建模方式,支持正向和逆向工程。
- SQL开发:
具备完整的SQL编辑器,支持语法高亮、自动补全、错误提示等功能,提高SQL编写效率
- 数据库管理:
允许用户创建、删除、备份、恢复数据库,并提供性能优化功能
- 数据迁移:
支持数据迁移工具,帮助进行复杂的数据库迁移操作
- 优势:
- 强大的数据建模和设计功能,适用于大型项目
- 图形化界面直观,易于理解和使用
- 支持Windows、Linux和Mac操作系统
- 适用场景:
适合数据库管理员、开发人员和系统规划师,尤其是需要进行复杂数据库设计和大规模数据处理的情况
2.2、phpMyAdmin介绍
phpMyAdmin是一个基于Web的开源工具,通过Web浏览器访问和管理MySQL数据库,方便用户进行数据库操作和数据查询
- 定义与背景:
phpMyAdmin是一个免费的开源Web应用程序,用于通过Web浏览器管理MySQL数据库
- 主要功能:
- 数据库操作:
支持管理数据库中的各种对象,如表、视图、索引等
- 数据查询:
提供一个SQL编辑器,方便执行SQL查询和脚本
- 数据备份与恢复:
可轻松备份整个数据库或单个表,并支持恢复操作
- 用户管理:
支持用户账户的创建和管理
- 优势:
- 基于Web应用,无需额外软件安装,随时随地通过浏览器访问
- 高度可定制,支持多种主题、插件和语言
- 免费且开源,获得广泛支持和使用
- 适用场景:
适合小型Web应用程序和快速数据库操作,对于只需基本数据库管理功能的用户可以满足需求
三、存储引擎InnoDB、MyISAM、Memory介绍
3.1、InnoDB
InnoDB是MySQL数据库系统中最常用的存储引擎之一,以其强大的事务处理、行级锁定和高效的内存管理而闻名。
InnoDB的设计旨在提供高性能、高可靠性和数据完整性,特别适合需要处理大量数据和高并发请求的应用。
- 事务支持和ACID特性
- 原子性(Atomicity):事务处理过程中,要么全部执行,要么全部不执行,确保数据的一致性。
- 一致性(Consistency):事务使数据库从一个一致状态转移到另一个一致状态,防止数据损坏。
- 隔离性(Isolation):多个事务同时进行时,互不干扰,防止脏读、不可重复读和幻读等问题。
- 持久性(Durability):事务完成后,所有更改永久保存在数据库中,即使系统崩溃也能恢复。
- 行级锁定和多版本并发控制(MVCC)
- 行级锁定:只锁定事务操作涉及的行,而不是整个表,提高并发性能。
- 多版本并发控制(MVCC):通过维护数据多个版本,让读写操作无锁并发执行,进一步提升并发性能。
- 数据和索引结构
- 聚簇索引:InnoDB使用聚簇索引存储数据,数据实际存放在叶节点上,按主键顺序物理存储,如果没有主键则自动生成隐藏的主键。
- B+树索引:采用B+树作为索引结构,提高了数据检索效率。
- 缓冲池和内存管理
- 缓冲池:一块自管理的内存区域,缓存数据页和索引页,减少磁盘I/O,提升性能。
- 内存管理:还包含重做日志缓冲区和额外的内存池,用于支持事务恢复和高性能操作。
- 崩溃恢复和日志系统
- 重做日志(redo log):记录事务变更操作,支持事务的持久性和崩溃后的数据恢复。
- 撤销日志(undo log):记录数据旧版本,支持事务回滚和MVCC。
- 其他关键特性
- 插入缓冲:优化非唯一二级索引插入的性能。
- 两次写机制:避免数据页损坏带来的数据丢失。
- 自适应哈希索引:自动为频繁查询创建哈希索引,提高查询速度。
- 异步I/O操作:提高磁盘I/O性能,减少等待时间。
3.2、MyISAM
MyISAM是MySQL数据库中一种经典且高性能的存储引擎,尽管在新版本的MySQL中默认使用InnoDB,但MyISAM在许多特定应用场景中仍具有独特的优势。
MyISAM以其高读取速度和全文索引支持而著称,特别适合读多写少的场景。
- 特性和用途
- 非事务型:MyISAM不支持事务处理,这使得它不适合需要事务完整性的应用。
- 高速读取:MyISAM以高效的数据读取速度著称,适合执行大量的SELECT查询操作。
- 表级锁定:使用表级锁定而非行级锁定,写入操作会锁定整个表,降低了并发性能,但在读取为主的应用中影响较小。
- 全文索引支持:支持全文搜索功能,适用于需要这类功能的应用,如网站内容管理和搜索引擎。
- 内部结构
- 文件组成:每个MyISAM表由表定义文件(.frm)、数据文件(.MYD)和索引文件(.MYI)组成。
- 数据索引分离:数据和索引分别存放在不同的文件中,有助于独立优化和维护索引。
- 适用场景
- Web和数据仓库应用:由于其快速的读取速度,适用于Web服务器数据库和大数据分析工具。
- 日志记录应用:MyISAM也适用于日志记录,得益于其简单和高速的写入能力。
- 管理与优化
- 表的维护:使用myisamchk工具检查和修复MyISAM表;同时,CHECK TABLE和REPAIR TABLE SQL语句也是重要的维护手段。
- 性能优化措施:调整键缓存大小、使用延迟插入(INSERT DELAYED)、定期分析索引来优化查询计划,以及压缩表和索引以减少磁盘空间占用并提高I/O性能。
- 优缺点
- 优点:读取速度快、资源占用少,支持全文索引,适用于高读取需求的应用。
- 缺点:不支持事务处理和行级锁定,写入时会锁定整个表,并发性能较差,并且可能会因崩溃导致数据不一致。
3.3、Memory
Memory存储引擎是MySQL中一种将数据存储在内存中的存储引擎,由于其极高的访问速度,通常用于临时表或缓存。
- 特点和适用场景
- 高性能:所有数据存储在内存中,存取速度极快,适合对访问速度要求很高的应用场景。
- 非持久化:数据在服务器重启时会丢失,因此不适合需要永久保存的数据。
- 表级锁定:采用表级锁定机制,并发性能较差,但在读取为主的场景下影响不大。
- 文件存储和内部结构
- 文件组成:Memory引擎的表主要将表定义存储在.frm文件中,数据和索引则存储在内存中,不会占用硬盘空间。
- 索引支持:支持哈希索引,可以提高查询速度,尤其是在内存访问的场景下。
- 创建和管理
- 创建Memory表:使用CREATE TABLE语句并在末尾指定ENGINE=MEMORY来创建Memory表。
- 管理策略:由于数据存储在内存中,对Memory表的维护相对较少,但需要注意表的大小和内存的使用情况,避免内存不足导致的性能问题。
- 应用场景和优化
- 临时表使用:Memory表非常适合作为临时表使用,比如存储中间结果、进行复杂的计算等。
- 缓存应用:可以用作缓存经常访问但变更较少的数据,提高系统响应速度。
- 性能优化:虽然Memory表本身速度很快,但在多表操作和复杂查询时,依然需要进行合理的查询优化和使用索引。
四、ACID事务是什么
ACID事务是确保数据库管理系统(DBMS)中数据完整性和一致性的关键概念,代表原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)四个特性。
在数据库系统中,一个事务是指由一系列数据库操作组成的一个完整的逻辑过程,例如银行转账操作包括从原账户扣款和向目标账户加款,这两个操作共同构成一个不可分割的事务。
- 原子性(Atomicity):
- 原子性确保事务中的所有操作要么全部完成,要么全部不完成,不会结束在中间某个环节。如果事务在执行过程中发生错误,会被恢复到事务开始前的状态,就像这个事务从未执行过一样。
- 实现原子性关键在于在事务回滚时能够撤销所有已经成功执行的操作。通常通过undo log(回滚日志)来实现。当事务对数据库进行修改时,系统会生成对应的undo log。如果事务执行失败或调用了回滚命令,便可以利用undo log中的信息将数据恢复到修改之前的状态。
- 一致性(Consistency):
- 一致性确保事务将数据库从一个一致性状态转换到另一个一致性状态。事务执行前后,数据库的完整性约束没有被破坏,数据仍然遵守预设的规则。
- 一致性的核心在于保证事务的执行结果符合预期,避免出现部分操作成功而部分操作失败的情况。例如,在银行转账例子中,转账操作要么完全成功,要么完全不发生,不会停留在一个中间状态。
- 隔离性(Isolation):
- 隔离性能防止多个并发事务之间的交叉执行和相互干扰,确保每个事务在独立的环境下运行。这可以防止多个事务因同时访问和修改同一数据而产生冲突和数据不一致的问题。
- 数据库通过设置不同的隔离级别来实现不同程度的隔离性,包括读未提交(Read Uncommitted)、读已提交(Read Committed)、可重复读(Repeatable Read)和串行化(Serializable)。隔离级别越高,事务之间的相互影响越小,但可能会影响系统的性能。
- 持久性(Durability):
- 一旦事务被提交,它对数据库的修改就是永久的,即使系统发生故障也不会导致数据丢失。
- 持久性通常通过redo log(重做日志)来实现。当事务提交时,其修改记录会被写入redo log并同步到磁盘上,确保数据修改即使在系统崩溃后也能被恢复。
五、安装MYSQL
# 更新yum源
[root@httpsl ~]# rpm -Uvh http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
# 安装mysql
Complete!
[root@httpsl ~]# yum -y install mysql-community-server --nogpgcheck
# 启动mysql并查看状态
[root@httpsl ~]# systemctl start mysqld
[root@httpsl ~]# systemctl status mysqld
# 查看mysql_root初始密码
[root@httpsl ~]# grep 'temporary password' /var/log/mysqld.log |awk '{print $11}'
六、MYSQL操作
6.1、修改密码
# 执行MySQL 数据库初始化命令
[root@iZbp129gypomkv7w7deqpqZ ~]# mysql_secure_installationSecuring the MySQL server deployment.# 临时密码
Enter password for user root: The existing password for the user account root has expired. Please set a new password.# 新密码
New password: # 再次输入新密码
Re-enter new password: Estimated strength of the password: 100
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.# 往下全部y即可
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Success.By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y- Dropping test database...
Success.- Removing privileges on test database...
Success.Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.All done!
6.2、登陆mysql数据库
[root@iZbp129gypomkv7w7deqpqZ ~]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 5.7.44 MySQL Community Server (GPL)Copyright (c) 2000, 2023, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql>
6.3、增操作
- 简单创建库
mysql> create database mydb;
Query OK, 1 row affected (0.00 sec)
- 创建一个名为mydb的数据库,并使用UTF-8字符集和utf8_general_ci排序规则
mysql> create database mysqldb character set utf8 collate utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
- 判断数据库是否存在,不存在则直接创建该数据库,存在,也不会报错
mysql> create database if not exists my_db;
Query OK, 1 row affected (0.00 sec)
- 添加数据表
mysql> create table students(--创建编号列-> stu_num char(8) not null unique,-- 创建名字列-> stu_name varchar(20) not null unique,-- 创建性别列-> stu_gender char(2) not null unique,-- 创建年龄列,年龄为整数-> stu_age int not null unique,-- 创建电话列-> stu_tel char(11) not null unique,-- 创建qq号列-> stu_qq varchar(11) not null unique,-- 创建微信号列-> stu_weixin varchar(100) not null unique);
6.4、删操作
- 删除数据库
mysql> drop database test1_db;
- 判断是否已经删除test1_db数据库,未删除,直接删除,删除,不报错
mysql> drop database if exists test1_db;
- 删除数据表
mysql> drop table students;
- 判断是否已删除,自行删除
mysql> drop table if exists students;
- 删除字段名(列)
mysql> alter table students drop stu_num;
6.5、改操作
- 修改test_db的字符集为gbk
mysql> alter database test_db character set gbk;
- 修改表名
mysql> alter table students rename to studebts_db;
- 修改表的字符集是gbk还是utf-8
mysql> alter table students character set utf-8;
- 在表中新加一个字段(列)
mysql> alter table students add stu_bj varchar(10);
- 修改字段名和类型
mysql> alter table students change stu_num stu_num1 int ;
- 只修改字段类型
mysql> alter table students modify stu_num int;
6.6、查操作
- 显示当前mysql中的数据库列表
mysql> show databases;
- 显示指定命令的数据库创建时的SQL指令
mysql> show create database test1_db;
- 查看所有的数据表
mysql> show tables;
- 查看数据表结构
mysql> desc students;
注:关于mysql的其他指令操作也可以查看拓展专栏中的mysql数据库入门到精通-Windows版本mysql安装
相关文章:
Linux中安装MYSQL数据库
文章目录 一、MYSQL数据库介绍1.1、MySQL数据库的基本概述1.2、MySQL数据库的主要特性1.3、MySQL数据库的技术架构与组件1.4、MySQL数据库的应用与扩展性1.5、MySQL数据库的许可模式与开源生态 二、MySQL Workbench和phpMyAdmin介绍2.1、MySQL Workbench介绍2.2、phpMyAdmin介绍…...

Vue前端服务加密后端服务解密--AES算法实现
在实际项目中考虑到用户数据的安全性,在用户登录时,前端需要对用户密码加密(防止用户密码泄露),服务端收到登录请求时先对密码进行解密,然后再进行用户验证登操作。本文使用 AES ECB 模式算法来实现前端机密…...
matlab实现文字识别
在MATLAB中实现文字识别通常涉及图像处理技术和机器学习算法,特别是使用MATLAB内置的Image Processing Toolbox和Machine Learning Toolbox。下面是一个基本的步骤指南,展示如何在MATLAB中设置和执行一个简单的OCR(Optical Character Recogni…...

Leetcode - 周赛409
目录 一,3242. 设计相邻元素求和服务 二,3243. 新增道路查询后的最短距离 I 三,3244. 新增道路查询后的最短距离 II 四,3245. 交替组 III 一,3242. 设计相邻元素求和服务 本题纯模拟,代码如下ÿ…...

突破百度网盘的下载限速,两种方法教会你【超详细】
一、前言 Hello,大家后,我是博主英杰,前几天,我在使用百度网盘过程中,下载速度极慢,自己作为一个白嫖党,开会员也是心疼那点钱,所以在网上找了几个有效解决百度网盘限速问题的教程&a…...

整理 酷炫 Flutter 优质 布局、交互 开源App
xtimer-flutter-app Flutter 计时器应用 项目地址:https://github.com/pedromassango/xtimer-flutter-app 项目Demo:https://download.csdn.net/download/qq_36040764/89631382...

【PyCharm怎么同时打开多个项目】
问题描述: 之前点击了“dont ask again”,再也不能同时打开两个或多个项目了。 解决: file->settings->appearance->system settings->project->选择ask...

使用 ProcDump 调试 Linux
Debug Linux using ProcDump By Gaurav Kamathe July 17, 2020 译者:wxy 校对:wxy 微软越来越心仪 Linux 和开源,这并不是什么秘密。在过去几年中,该公司稳步地增加了对开源的贡献,包括将其部分软件和工具移植到 L…...

2023年中国城市统计年鉴(PDF+excel)
2023年中国城市统计年鉴 1、时间:1985-2023年 2、格式:PDFexcel 3、说明:中国城市统计年鉴收录了全国各级城市社会经济发展等方面的主要统计数据,数据来源于各城市的相关部门。本年鉴内容共分四个部分:第一部分是全…...

自用 K8S 资源对象清单 YAML 配置模板手册-1
Linux 常用资源对象清单配置速查手册-1 文章目录 1、Pod 容器集合2、Pod 的存储卷3、Pod 的容器探针4、ResourceQuota 全局资源配额管理5、PriorityClass 优先级类 管理多个资源对象清单文件常用方法: 使用 sed 流式编辑器批量修改脚本键值进行资源清单的创建&am…...

【数据库】事务 | 视图 | 自定义函数创建
1、事物及其特征 事物机制的应用:淘宝订单交易,微信转账等。 视图--------筛子---------过滤-------筛选想要的信息 数据库只存放了视图对应的SQL语句。 视图是一个虚拟的表,本质是一个虚拟的SQL命令集合。 (1)创建…...

Linux---进程(5)---进程地址空间
目录 预备知识 进程地址空间 什么是进程地址空间 为什么要存在进程地址空间和页表 缺页中断 预备知识 我们在学习语言的时候,一般都会了解到内存区域划分,下面了解一下Linux的内存区域划分。 通过上图,我们了解到 1、堆区向上增长&…...

C语言实现数据结构之队列
目录 队列一. 队列的概念及结构二. 队列的实现1. 要实现的功能2 具体的实现2.1 结构体2.2 初始化2.3 入队列2.4 出队列2.5 返回队首元素2.6 返回队尾元素2.7 队列元素个数2.8 队列判空2.9 队列销毁 三. 队列相关OJ题设计循环队列用队列实现栈用栈实现队列 四. 概念选择题五. 参…...

写一个Vue2和vue3的自定义指令(以复制指定作为示例)
文章目录 一、自定义指令是什么?二、自定义指令有啥用?三、自定义指令怎么用?1.自定义指令的参数2.自定义指令的钩子函数(1)五个钩子函数的说明(2)钩子函数的参数(主要参数:el和valu…...

MySQL —— 聚合查询,分组查询 与 联合查询
聚合函数 常见的统计总数、计算平局值等操作,可以使用聚合函数来实现,常见的聚合函数有: 函数说明count()统计数据总数sum()求和avg()求平均值max()求最大值min()求最小值 注意凡是涉及运算的,数据库会自动掉 NULL 值 注意NULL …...

Spring声明式事务失效场景
Spring声明式事务失效场景 背景搭建测试环境测试事务失效场景Transactional 注解标注在 private 方法上异常被 catch 了,事务失效方法抛出的是受检异常,事务也会失效事务传播行为配置不合理导致事务失效 背景 Spring 针对 Java Transaction API (JTA)、…...

基于SpringBoot+UniAPP宠物食品外卖点单小程序的设计与实现》
✅博主简介:Java 全栈开发工程师,抖音优质技术创作者,日常分享实用的前端、后端、运维开发技术。 ✅技术栈:Java、SpringBoot、Vue、React、Node.js、Nest.js、Nuxt.js、uni-app ✅技术擅长:计算机毕设选题、开题报告、…...
ssrf 内网访问 伪协议 读取文件 端口扫描
SSRF(Server-Side Request Forgery,服务器侧请求伪造)是一种利用服务器发起网络请求的能力来攻击内网资源或执行其他恶意活动的技术。SSRF可以用于访问通常不可由外部直接访问的内网资源,读取文件,甚至进行端口扫描。以…...

发布包到npm
目录 注册npm账号 创建包 登录npm 上架包 更新包 删除包 注册npm账号 首先注册npm账号:npm | Sign Up (npmjs.com) 创建包 可以在桌面上新建一个文件夹:文件夹名随便起,但是别跟npm已经上架的包名重复了 可以通过下面的指令查看&…...

Python | Leetcode Python题解之第324题摆动排序II
题目: 题解: def quickSelect(a: List[int], k: int) -> int:seed(datetime.datetime.now())shuffle(a)l, r 0, len(a) - 1while l < r:pivot a[l]i, j l, r 1while True:i 1while i < r and a[i] < pivot:i 1j - 1while j > l an…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...

MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互
引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...

C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...
Robots.txt 文件
什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...
三体问题详解
从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…...

ArcGIS Pro制作水平横向图例+多级标注
今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...