【MySQL】日志
1. 日志基本了解
常见的MySQL Server日志类型,以及记录的日志信息(场景+通俗理解)
- 错误日志
- 记录的主要信息由服务器关闭、启动、崩溃事件;MySQL运行过程中出现的错误、警告和严重事件以及与权限、配置相关的问题
- 使用场景
- 诊断MySQL服务器启动失败或者运行中崩溃的原因
- 如果遇到权限问题或者连接错误的时候,可以通过错误日志快速定位的问题
- 一般查询日志
- 记录信息
- 记录MySQL中接收到的每一个SQL查询,无论最终查询是否运行
- 其中是包括连接、断开连接、SQL语句的执行情况等
- 使用场景
- 主要用于调试查询和监控SQL语句的执行情况
- 如果在性能优化场景下,可以分析系统中频繁执行的SQL语句
- 记录信息
- 慢查询日志
- 记录信息
- 记录哪些执行时间超过设定阈值的SQL语句
- 一般情况下是和性能紧密相关
- 使用场景
- 主要用于找到那些执行时间长、影响数据库性能的查询,从而优化数据库的性能
- 记录信息
- 二进制日志
- 记录信息
- 记录所有对数据库进行修改的雨具,不记录查询操作,只记录修改操作
- 使用场景
- 数据恢复:可以通过二进制日志将数据库恢复到某个时间点的情况
- 主从复制:主要用于同步服务器和从服务器的数据使用
- 二进制日志就是“修改历史”,记录了所有对数据库进行的修改的操作,帮助在发生问题的时候还原数据或者数据同步
- 记录信息
- 中继日志
- 记录信息:在主从复制环境中,记录从服务器接收到主服务器传送的二进制日志内容
- 使用场景:从服务器会读取中继日志,执行主服务器上的数据变更,保持数据同步
- 中继日志可以理解成邮差中的信件,从服务器通过中继日志来接收并执行主服务器发送过来的操作
- DDL日志
- 主要记录数据库结构的变更
- 使用场景:用于记录数据库对象的创建、修改删除操作
- 回滚/撤销日志
- 主要记录信息:用于事务回滚时保存的数据快照,以便在事务失败时恢复数据到原始状态
- 使用场景:主要用于事务的处理,特别在当某个事务失败或者需要回滚的时候,通过撤销日志恢复数据库到正确的状态
- 重做日志
- 主要信息:记录了已经提交事务的所有操作,主要用于数据库崩溃后进行数据恢复
- 使用场景:数据库崩溃后,用于将尚未写入磁盘的数据重新加载到数据库中,从而确保数据的一致性
- 重做日志就类似于紧急备份日志,当数据库崩溃的时候,可以恢复那些已经完成但是还没有存储到磁盘的操作
日志使用特性
- 默认情况日志启动:Linux下默认开启错误日志和二进制日志,Windows下是只开启错误日志,不开启其他日志
- 日志写入方式:日志可以写入日志文件、也可以写入数据库中的表,这也就意味着用户可以根据需求选择记录日志的方式
- 查询日志和慢日志是可以同时写入日志表和文件的
- 日志存储位置:默认情况下,所有启动的日志都会记录在日志目录中
- 可以通过刷新日志的方式强制关闭当前日志文件并创建新的日志文件,确保日志数据不会过大或者影响系统性能
- 刷新日志的命令
- 通过
FLUSH LOGS
命令,用户可以强制 MySQL 服务器关闭当前的日志文件并开启一个新的日志文件 - 另外,命令
mysqladmin flush-logs
或refresh
参数可以起到类似的效果 - 在执行数据备份时,可以使用
mysqldump
命令中的--flush-logs
或--master-data
选项,确保日志与数据备份的一致性
- 通过
- 中继日志
- 主从复制过程中的核心内容之一,主要就是用于主服务器与从服务器之间的数据同步与恢复
2. 一般查询日志与慢查询日志
输出方式
主要有两种方式记录一般查询日志和慢查询日志,可以选择将日志写入到日志文件或者日志表中,也可以同时写入这两个地方。MySQL的log_outut变量专门负责控制输出的具体形式。
- 日志文件(FILE):日志信息以文件的形式输出
- 日志表(TABLE):日志信息写入到MySQL系统数据库的日志表中
一般查询日志与慢查询日志位置
配置文件(将一般查询日志和慢查询日志写入日志文件,并指定自定义查询路径)
[mysqld]
log_outut = FILE #日志文件
general_log = 1 #开启一般查询
general_log_file = /log/mysql/general.log #指定自定义文件名slow_query_log = 1 #开启慢查询日志
slow_query_log_file = /log/mysql/slow_query.log #指定自定义文件名
配置/val/lib/mysql/my.cnf
重启数据库查看是否修改成功
MySQL客户端配置前后对比
运行时的日志控制
- 启动查询日志
SET GLOBAL general_log = 'ON';
SET GLOBAL general_log_file = '/var/log/mysql/mysql.log';
- 启动错误日志
mysql -u root -p -e "SHOW VARIABLES LIKE 'log_error';"
- 使用tail命令实时查看日志文件新增内容
2.1 一般查询日志
重要知识点总结
- 一般查询日志存储内容:客户端连接与断开信息、从客户端接收到的每个SQL语句
- 配置命令:--general_log[={0|1}]
- 默认日志名为host_name.log,但是可以通过general_log_file = file_name来进行修改
- MySQL按照接收到SQL语句顺序,将语句写入查询日志,这个顺序可能与语句的执行顺序不同
分析一般查询日志的创建语句
- event_time:事件发生时间
- user_host:什么主机发起的请求,记录用户和主机信息
- thread_id:记录线程ID
- server_id:记录服务器ID,主要在主从复制场景下使用功能,用于区别不同服务器所产生的日志
- command_type:命令的类型,标识所执行的SQL命令类型
- argument:记录执行的SQL语句或者相关的详细信息
查看一般查询日志文件内容
启用一般查询日志(通过配置文件生效)
[mysqld]
general_log = 1
general_log_file = /var/log/mysql/general.log//重启生效
sudo systemctl restart mysql
cat /var/log/mysql/general.log
其他日志类似
2.2 慢查询日志
什么是慢查询日志
- 慢查询日志的判断需要满足查询时间和检查的行数是否大于指定数值两个条件
- 记录到的慢查询日志需要进行优化,可以使用mysqldumpslow客户端程序对慢查询日志进行分析汇总
- 获取初始化锁的时间是不计入执行时间的,mysqld在执行完所有的SQL语句并后才会将符合条件的语句写入慢查询日志中
- 补充:一个SQL语句执行经历的阶段
- 执行线程获取锁,如果没有获取锁则要阻塞等待
- 执行SQL语句并返回结果
- 最后将线程获取的锁释放即可
- 慢查询语句计算的时间是以后两个阶段为主
慢查询日志的参数
- long_query_time参数
- 一般的默认值是10秒,最小可以设置为0,也就是只要超过这个设定的数值就是开启慢查询
- 默认情况
- 不记录管理语句,同时也不会记录未使用索引的查询(查询没有利用数据库的索引时不会自动记录)
- 启动慢查询日志:--slow_query_log=[0|1]
- 慢查询默认的日志文件格式是host_name-slow.log,可以通过slow_query_log=file_name来指定新的文件名
- 简单格式记录
- 使用--log-short-format参数可以启动简化日志记录格式
- 记录未使用索引的查询
- 没有使用索引的查询可能会导致性能问题,这个参数允许将这样的查询记录下来,同时为了避免日志过大或者过多,可以设置限制每分钟记录的未使用功能索引的查询条数
慢查询日志输出到文件时候的参数
- Query_time:SQL语句的执行事件,也就是查询开始到结束的时间,不包括开始加锁的时间
- Lock_time:MySQL获取表锁的时间
- Rows_sent:查询返回给客户端的行数,这个查询的结果有多个行发送给客户端
开启慢查询日志、指定输出文件、设置查询时间为1秒
慢查询的表结构
- start_time:查询开始执行的时间。
- user_host:执行查询的用户和主机信息。
- query_time:查询的执行时间,单位是
time
类型。 - lock_time:查询过程中获取锁的时间。
- rows_sent:查询返回给客户端的行数。
- rows_examined:查询过程中服务器检查的行数。
- db:查询所在的数据库名称。
- last_insert_id:最后插入的自增ID。
- insert_id:当前查询影响的自增ID。
- server_id:服务器的ID。
- sql_text:执行的实际 SQL 语句。
- thread_id:MySQL 线程ID,用于标识查询所属的线程
具体代码事例
3. 错误日志
错误日志含义
- 错误日志记录的是mysqld程序的操作
- 记录MySQL服务在启动、关闭过程中的诊断信息,以及运行期间发生的错误和警告信息
- 错误日志使用UTF-8编码格式,同时使用英文生成记录
错误日志输出位置
-
默认输出目标:
- 如果没有指定
--log-error
选项,默认情况下,错误日志会输出到控制台
- 如果没有指定
-
默认文件路径:
- 当使用
--log-error
但未指定具体文件时,MySQL会默认在数据目录中生成名为host_name.err
的日志文件
- 当使用
-
指定日志文件路径:
- 如果明确指定了
--log-error
的文件名,MySQL会在数据目录下根据该名称创建错误日志文件。如果未提供后缀名,系统会默认使用.err
作为后缀 - 也可以通过指定绝对路径来更改日志的存储位置,以便于集中管理和备份
- 如果明确指定了
-
控制台输出与文件记录的选择:
- 如果设置了错误日志的输出目标为控制台(
stderr
),则MySQL会将日志信息显示在控制台窗口 - 否则,
log_error
的值会被解析为文件路径,并按照该路径将日志记录为文件
- 如果设置了错误日志的输出目标为控制台(
[mysqld]
log-error=/var/log/mysql/error_log.err # 自定义错误日志的路径
- 总结
- 为方便系统日志的集中管理,最好还是使用绝对路径的错误日志文件,然后将其保存到/var/log目录下
错误日志核心字段
-
time
(时间戳)- 记录事件发生的精确时间,通常精确到微秒级。这在排查问题的先后顺序时尤为关键。
-
msg
(消息内容)- 记录错误事件的详细信息,即具体的错误消息字符串,用于描述问题的类型或原因。
-
prio
(事件优先级)- 表示该事件的优先级,常见分类有:
- System event(系统事件):优先级最低(0),一般用于系统级通知。
- Error event(错误事件):优先级为1,需要紧急处理。
- Warning(警告):优先级为2。
- Note/information event(信息提示):优先级为3,记录一些状态变化或通知,提示意义较多。
- 表示该事件的优先级,常见分类有:
-
err_code
(错误代码)- 每个错误都会分配一个错误代码,用于系统内部识别和匹配。
-
err_symbol
(错误符号)- 使用字符串来标识具体错误,例如
'ER_DUP_KEY'
表示主键重复错误。
- 使用字符串来标识具体错误,例如
-
SQL_state
(SQL状态码)- 与
err_symbol
对应的SQLSTATE值,例如'ER_DUP_KEY'
对应的SQLSTATE为23000
。这些状态码是标准化的,用于数据库系统之间的兼容。
- 与
-
subsystem
(子系统)- 记录错误的子系统来源,常见的值包括:
- InnoDB(存储引擎)
- Repl(复制系统)
- Server(其他通用系统错误)
- 记录错误的子系统来源,常见的值包括:
实践理解
- 修改my.cnf配置文件,设置错误日志路径
sudo nano /etc/mysql/my.cnf// 添加内容
[mysqld]
log-error=/var/log/mysql/error_log.err # 指定错误日志路径
- 重新启动MySQL服务配置
- 查看错误日志中内容
4. 二进制日志
二进制日志含义理解
- 二进制日志是MySQL数据库中记录对数据更改操作的重要日志文件
- 该日志保存着所有对数据库状态产生变更的雨具,例如INSERT、UPDATE等操作,注意不会记录查询数据的语句(例如select / show)
- 主要作用就是数据复制和数据恢复,从而保证数据库在发生故障或者数据同步的时候可以有效回滚或者同步
二进制日志特点
- 影响数据库状态的事件记录:其中包括每个更新操作的执行时间信息,从而可以更好的分析数据库性能
- 不记录查询语句
- 启动二进制可能会对数据库的性能有轻微影响,因为每次数据更改都会被记录下来
二进制日志的作用
- 主从复制:从库服务器通过读取主库二进制日志并执行相应的操作,实现数据同步,最终保证了主从数据库的一致性
- 数据恢复:数据库管理员可以利用二进制日志,将数据库恢复到某个时间点状态
- 加密与安全:如果日志中涉及到敏感信息,那么就需要对二进制日志进行加密,确保不会以明文形式泄漏
二进制日志核心变量
log_bin
- 启动或者禁用二进制日志,一般默认是OFF
// 启动并设置二进制日志路径[mysqld]
log-bin = /var/log/mysql/mysql-bin.log
binlog_format
- 用于控制二进制日志格式,主要有三种格式
- ROW:记录每一行的数据变化,保证精确同步。
- STATEMENT:记录SQL语句,性能更高但可能导致数据不一致。
- MIXED:两者结合,常用于性能与数据一致性的平衡。
SET GLOBAL binlog_format = 'ROW';
expire_logs_days
- 设置二进制日志的自动清理时间,以天为单位
[mysqld]
expire_logs_days = 7 # 二进制日志保留7天
max_binlog_size
- 限制单个二进制日志文件的大小,一般默认是1G
[mysqld]
max_binlog_size = 500M # 设置最大为500MB
sync_binlog
- 控制二进制日志在写入磁盘时间的同步频率
0
:系统自行决定同步频率,性能高但可能丢失数据。1
:每次提交后都同步,确保数据一致性
[mysqld]
sync_binlog = 1
实践:启动二进制日志并进行数据恢复
- 编写配置文件
- 重启服务,创建数据库写入数据
- 查看该二进制日志中的内容
- 补充最终二进制文件名为什么是mysql-bin.000001
- MySQL对二进制日志文件的管理不是统一放在一个文件中,而是根据设定前缀名,后续就是按照顺序递增的后缀名
- 查看二进制日志的系统变量
- 查看二进制日志的状态变量
5. Redo Log 和 Undo Log
这两个日志是确保数据一致性和可靠性的关键日志机制。其在事务处理、崩溃恢复、回滚操作中起到重要作用。
Redo Log(重做日志)
- 作用
- 崩溃恢复:当数据库发生故障后,重启Redo Log会重新应用尚未写入磁盘的数据变更,确保数据完整性
- 记录已经提交的事务,确保数据在崩溃后能够完整地反映这些变更
- 运行机制
- 写入机制:事务提交的时候,先将修改I的数据写入到Redo Log 中,然后再写入磁盘的数据文件
- 循环写入:Redo Log采用循环日志文件机制,日志写满后会覆盖掉最早的日志,从而保证性能和存储的高效性
- 刷新日志的选项
innodb_flush_log_at_trx_commit = 1
:每次事务提交时都刷盘(默认值,最安全)。innodb_flush_log_at_trx_commit = 2
:每秒刷盘一次。innodb_flush_log_at_trx_commit = 0
:不立即刷盘,性能高但有丢失风险。
[mysqld]
innodb_flush_log_at_trx_commit = 1 # 每次事务提交时都将Redo Log刷盘,确保数据安全。
Undo Log(撤销日志)
- 作用
- 用于回滚事务:当需要撤销或者回滚一个事务的时候,Undo Log会撤销已经应用的操作,恢复数据到事务开始之前的状态
- 支持多版本并发控制:Undo Log的历史版本数据也被用于实现多版本并发控制,从而支持读未提交或者快照隔离的事务
- 工作机制
- 事务开始的时候就会创建一份原始数据的快照,如果事务发生了回滚,就会从Undo Log中读取快照进行恢复
- Undo Log会存放在InnoDB表空间中,并在事务完成后逐步清理
START TRANSACTION;
INSERT INTO users (id, name) VALUES (1, 'Alice');
ROLLBACK; -- 使用Undo Log撤销插入操作
总结
- 这两个日志主要用来保证了MySQL事务的ACID特性
- Redo Log主要用于确保崩溃后的数据一致性,Undo Log则是用于回滚未完成的事务,并实现多版本控制
6. 服务器日志维护
基于Ubuntu系统,学习部分日志管理维护方法
常见日志文件及其路径
Ubuntu使用rsyslog
和journald
来管理日志,主要日志文件位于**/var/log/
**目录下:
- 系统日志:
/var/log/syslog
(系统事件、服务信息) - 内核日志:
/var/log/kern.log
(内核事件) - 用户登录日志:
/var/log/auth.log
(登录认证相关) - MySQL日志:
/var/log/mysql/error.log
(数据库运行错误) - Nginx/Apache日志:
/var/log/nginx/access.log
,/var/log/nginx/error.log
日志轮换与压缩
使用Logrotate工具实现日志的自动轮换与压缩,避免日志文件占用大量磁盘文件
- 配置
- 测试
使用journalctl管理系统日志
- 查看所有系统日志
- 查看实时的日志
- 查看特定时间的日志
管理日志大小和清理旧日志
- 限制journald日志的大小,限制其总大小为500MB每个单日志最大100MB
- 重启该服务然后应用配置
实时监控与告警
安装logwatch,然后设置每天发送邮件通知
sudo apt install logwatchsudo logwatch --detail high --mailto your-email@example.com --service all --range today
相关文章:
【MySQL】日志
1. 日志基本了解 常见的MySQL Server日志类型,以及记录的日志信息(场景通俗理解) 错误日志 记录的主要信息由服务器关闭、启动、崩溃事件;MySQL运行过程中出现的错误、警告和严重事件以及与权限、配置相关的问题使用场景 诊断MyS…...
2024年CentOS镜像下载地址,包括CentOS官网、国内镜像下载,超详细也
这里给大家提供了4种镜像下载地址,包括CentOS官方镜像下载、阿里云开源镜像站下载、网易开源镜像下载搜狐开源镜像下载。 1.CentOS官网镜像下载 因为服务器在国外所以打开CentOS官方网站的时候可能会比较慢。大家可以选择后面几种国内镜像下载方式。 1.1进入CentO…...
STL学习-顺序容器-array数组
array模板类是C11引入。它是有着固定大小用于保存一系列同类型元素的顺序容容器,因此不能对它进行增加或者删除,只能使用或者替换它的元素值。 1.定义及初始化 array定义对象时,需要传入类型和大小,且大小不能修改。array是唯--个如果不初始化,它的初始化是不明确…...
Spring Boot框架下的酒店住宿登记系统
2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统,它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等,非常…...
electron展示下载进度条
我们使用electron下载文件时,会发现不像浏览器一样会有地方展示下载进度,这导致下载一些大文件时不知道下载进度到哪里了 下面我们通过electron提供的will-download监听和element-plus中的ElNotification和ElProgress组件实现这一功能 实现逻辑 触发…...
Spark 基础操作
Spark 操作 创建操作(Creation Operation) 用于RDD创建工作。RDD创建只有两种方法,一种是来自于内存集合和外部存储系统,另一种是通过转换操作生成的RDD 转换操作(Transformation Operation) 将RDD通过一定的操作变成新的RDD,比如HadoopR…...
VoLTE 微案例:VoLTE 注册失败,I-CSCF 返回 403,HSS(UAR) 返回 5001
目录 1. 问题描述 2. 故障注册流程与正常流程对照 3. 结论 博主wx:yuanlai45_csdn 博主qq:2777137742 想要 深入学习 5GC IMS 等通信知识(加入 51学通信),或者想要 cpp 方向修改简历,模拟面试,学习指导都可以添加博主低价指导哈。 1. 问题描述...
智能财务 | 数据与融合,激发企业财务数智化转型思考
数据与融合,激发企业财务数智化转型思考 用友持续深耕企业财务领域,见证中国企业走过了财务电算化、信息化时代,当下共同经历数智化时代。2023 年度,通过走访标杆企业,与高校教授、权威机构学者共同探讨等形式…...
docker 下载netcore 镜像
dotnet-docker/README.runtime.md at main dotnet/dotnet-docker GitHub docker pull mcr.microsoft.com/dotnet/runtime:8.0 docker pull mcr.microsoft.com/dotnet/runtime:3.1...
Ajax:请求 响应
Ajax:请求 & 响应 AjaxjQuery的Ajax接口$.get$.post$.ajax PostMan 接口测试getpost Ajax 浏览器中看到的数据,并不是保存在浏览器本地的,而是实时向服务器进行请求的。当服务器接收到请求,就会发回一个响应,此时浏…...
WebForms DataList 控件深入解析
WebForms DataList 控件深入解析 概述 在 ASP.NET WebForms 的众多服务器控件中,DataList 控件是一个功能强大的数据绑定控件,它允许开发者以表格形式展示和操作数据。DataList 控件类似于 Repeater 控件,但提供了更多的内置布局和样式选项…...
【有啥问啥】DINO:一种改进的去噪锚框的端到端目标检测器
DINO:一种改进的去噪锚框的端到端目标检测器 在目标检测领域,DINO(DETR with Improved DeNoising Anchor Boxes for End-to-End Object Detection)是一种创新的端到端目标检测模型,旨在解决传统目标检测算法中的一些关…...
自由学习记录(15)
Java注解 else if的省略问题(可能看花) else if也是取最近的if连通,看上去加了{}就可以正常执行了,缩进要命,不提示真容易看错, 组合数公式和数组参数 在 C 中,数组作为函数参数时,…...
Docker 部署 JDK11 图文并茂简单易懂
部署 JDK11 ( Docker ) [Step 1] : 下载JDK11 - JDK 11 | Oracle 甲骨文官网 [Step 2] : jdk11上传服务器/root/jdk11 可自行创建文件夹 进入目录 /root/jdk11 解压文件 tar -zxvf jdk-11.0.22_linux-x64_bin.tar.gz解压后 进入 /root/jdk11/jdk-11.0.22 创建 jre 文件 ./bi…...
Cisco ASAv虚拟防火墙
EVE-NG模拟器使用Cisco防火墙版本ASAv-9.20.3-PLR-Licensed。配置如下,主要是三个方面,配置管理口地址模式DHCP,配置安全级别;第二,开启http服务器,配置允许访问主机的网段和接口;最后配置用户名…...
w~自动驾驶合集6
我自己的原文哦~ https://blog.51cto.com/whaosoft/12286744 #自动驾驶的技术发展路线 端到端自动驾驶 Recent Advancements in End-to-End Autonomous Driving using Deep Learning: A SurveyEnd-to-end Autonomous Driving: Challenges and Frontiers 在线高精地图 HDMa…...
C/C++ H264文件解析
C实现H264文件以及一段H264码流解析,源码如下: h264Parse.h: #ifndef _H264PARSE_H_ #define _H264PARSE_H_#include <fstream>class H264Parse { public:int open_file(const std::string &filename);/*** brief 从文件中读取一个nalu&…...
【Windows】电脑端口明明没有进程占用但显示端口被占用(动态端口)
TOC 一、问题 重启电脑后,启用某个服务显示1089端口被占用。 查看是哪个进程占用了: netstat -aon | findstr "1089"没有输出,但是换其他端口,是可以看到相关进程的: 现在最简单的方式是给我的服务指定另…...
Redis 持久化 问题
前言 相关系列 《Redis & 目录》(持续更新)《Redis & 持久化 & 源码》(学习过程/多有漏误/仅作参考/不再更新)《Redis & 持久化 & 总结》(学习总结/最新最准/持续更新)《Redis & …...
vivado 配置
配置 配置指的是将特定应用数据加载到 FPGA 器件的内部存储器的进程。 赛灵思 FPGA 配置数据储存在 CMOS 配置锁存 (CCL) 中,因此配置数据很不稳定,且在每次 FPGA 器件上电后都必须重 新加载。 赛灵思 FPGA 器件可通过配置引脚,自行…...
Java如何实现PDF转高质量图片
大家好,我是 V 哥。在Java中,将PDF文件转换为高质量的图片可以使用不同的库,其中最常用的库之一是 Apache PDFBox。通过该库,你可以读取PDF文件,并将每一页转换为图像文件。为了提高图像的质量,你可以指定分…...
itemStyle.normal.label is deprecated, use label instead.
itemStyle.normal.label is deprecated, use label instead. normal’hierarchy in label has been removed since 4.0. All style properties are configured in label directly now. 错误写法: itemStyle: {normal: {// color: #00E0FF, // 设置折线点颜色 labe…...
如何在 Linux VPS 上保护 MySQL 和 MariaDB 数据库
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 简介 有许多在 Linux 和类 Unix 系统上可用的 SQL 数据库语言实现。MySQL 和 MariaDB 是在服务器环境中部署关系型数据库的两个流行选项…...
CSS 样式 box-sizing: border-box; 用于控制元素的盒模型如何计算宽度和高度
文章目录 box-sizing: border-box; 的含义默认盒模型 (content-box)border-box 盒模型 在微信小程序中的应用示例 在微信小程序中,CSS 样式 box-sizing: border-box; 用于控制元素的盒模型如何计算宽度和高度。具体来说, box-sizing: border-box; 会改…...
预训练 BERT 使用 Hugging Face 和 PyTorch 在 AMD GPU 上
Pre-training BERT using Hugging Face & PyTorch on an AMD GPU — ROCm Blogs 2024年1月26日,作者:Vara Lakshmi Bayanagari. 这篇博客解释了如何从头开始使用 Hugging Face 库和 PyTorch 后端在 AMD GPU 上为英文语料(WikiText-103-raw-v1)预训练…...
鸿蒙是必经之路
少了大嘴的发布会,老实讲有点让人昏昏入睡。关于技术本身的东西,放在后面。 我想想来加把油~ 鸿蒙发布后褒贬不一,其中很多人不太看好鸿蒙,一方面是开源性、一方面是南向北向的利益问题。 不说技术的领先点,我只扯扯…...
Java项目实战II基于微信小程序的马拉松报名系统(开发文档+数据库+源码)
目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 马拉松运动…...
家用wifi的ip地址固定吗?换wifi就是换ip地址吗
在探讨家用WiFi的IP地址是否固定,以及换WiFi是否就意味着换IP地址这两个问题时,我们首先需要明确几个关键概念:IP地址、家用WiFi网络、以及它们之间的相互作用。 一、家用WiFi的IP地址固定性 家用WiFi环境中的IP地址通常涉及两类:…...
codeforces _ 补题
C. Ball in Berland 传送门:Problem - C - Codeforces 题意: 思路:容斥原理 考虑 第 i 对情侣组合 ,男生为 a ,女生为 b ,那么考虑与之匹配的情侣 必须没有 a | b ,一共有 k 对情侣&#x…...
DataSophon集成ApacheImpala的过程
注意: 本次安装操作系统环境为Anolis8.9(Centos7和Centos8应该也一样) DataSophon版本为DDP-1.2.1 整合的安装包我放网盘了: 通过网盘分享的文件:impala-4.4.1.tar.gz等2个文件 链接: https://pan.baidu.com/s/18KfkO_BEFa5gVcc16I-Yew?pwdza4k 提取码: za4k 1…...
服装定制图片/整站seo排名外包
王利芬:接下来请你就“自定人生”这几个字,做一个十分钟的小讲演。 李开复:好的,谢谢。其实我今天想讲的就是说,在过去在创新工场走的这两年多,我接触了很多创业者,也接触了很多优秀的创业型的…...
做移门图的 网站有哪些/seo北京公司
概要 电影文件有很多基本的组成部分。首先,文件本身被称为容器Container,容器的类型决定了信息被存放在文件中的位置。AVI和Quicktime就是容器的例子。接着,你有一组流,例如,你经常有的是一个音频流和一个视频流。&…...
wordpress 绿色公益主题/长沙seo网站排名
2019独角兽企业重金招聘Python工程师标准>>> 版权声明:本文由李斯达 原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/97264001482830465 来源:腾云阁 https://www.qcloud.com/com…...
b2b网站大全 网址大全/泰州网站建设优化
本文翻译自:Getting error “No such module” using Xcode, but the framework is thereIm currently coding in Swift, and Ive got an error: 我目前正在使用Swift进行编码,但出现错误: No such module Social 没有这样的模块社交 But I…...
河南省南阳市建设局网站/电商线上推广渠道
以前看买了房的朋友都把QQ签名改成“辛辛苦苦几十年,一夜回到解放前”,还觉得有些夸张,觉得当房奴每个月还房贷也不过就是每月固定存点钱而已,应该没啥大问题的,但是现在发生到自己身上之后,才有了切实体会…...
南宁网站建设培训/太原百度关键词优化
计算机网络 OSI七层网络模型 网络的七层架构从下到上主要包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,如图6-1所示。 ◎ 物理层主要定义物理设备标准,它的主要作用是传输比特流,具体做法是在发送端将1、0转化为电流强…...