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

mysql日常巡检

1.查看mysql服务是否异常

systemctl status mysql_3306

查看MySQL进程是否存在

ps -ef | grep mysql

2.连接异常检查
(1)查看是否异常连接

show processlist;  
#或
show full processlist;

(2)查看当前失败连接数

show global status like 'aborted_connects';

(3)查看试图连接到MySQL(不管是否连接成功)的连接数

show status like 'connections';

(4)查看有多少由于客户没有正确关闭连接而死掉的连接数

show global status like 'aborted_clients';

(5)查看最大连接数上限

show variables like '%max_connections%';
show global status like 'max_connections';

(6)查看最大连接数

show global status like 'Max_used_connections';


比较理想的设置是:
Max_used_connections / max_connections * 100% ≈ 85%
最大连接数占上限连接数的85%左右,如果发现比例在10%以下,MySQL服务器连接数上限设置的过高了。

3.存储引擎状态检查
(1)查看默认存储引擎

show engines;

(2)检查InnoDB存储引擎的状态:

SHOW ENGINE INNODB STATUS;

4.mysql日志巡检
(1)查看异常日志路径

SHOW VARIABLES LIKE 'log_error';
tail -200f /mysql/log/3306/host01-error.log 

(2)查看慢查询日志路径

SHOW VARIABLES LIKE 'slow_query_log';
SHOW VARIABLES LIKE 'slow_query_log_file';
tail -200f  /mysql/log/3306/host01-query.log 

(3)查询数据库的慢查询日志

SELECT * FROM mysql.slow_log WHERE start_time >= NOW() - INTERVAL 1 DAY ORDER BY start_time DESC;

5.查看数据库基本信息
(1)查看数据库的版本

SELECT VERSION() AS 'MySQL版本';

(2)查看数据库字符集

SHOW VARIABLES LIKE 'character_set_database';

(3)查看数据库当前时间

SELECT NOW() AS '数据库当前时间';

(4)查看MySQL本次启动后的运行时间(单位:秒)

show status like 'uptime';


6.查看数据库数据量
(1)mysql查看所有数据库数据量

select 
table_schema as 'Database_name',
sum(table_rows) as 'rows',
sum(truncate(data_length/1024/1024, 2)) as 'Size_data(MB)',
sum(truncate(index_length/1024/1024, 2)) as 'Size_index(MB)'
from information_schema.tables
group by table_schema
order by sum(data_length) desc, sum(index_length) desc;

(2)mysql查看各个数据库表容量

select 
table_schema as 'Database_name',
table_name as 'table_name',
table_rows as 'rows',
truncate(data_length/1024/1024, 2) as 'Size_data(MB)',
truncate(index_length/1024/1024, 2) as 'Size_index(MB)'
from information_schema.tables
order by data_length desc, index_length desc;

(3)mysql查看指定数据库容量大小

select 
table_schema as 'Database_name',
sum(table_rows) as 'rows',
sum(truncate(data_length/1024/1024, 2)) as 'Size_data(MB)',
sum(truncate(index_length/1024/1024, 2)) as 'Size_index(MB)'
from information_schema.tables
where table_schema = 'mysql';

(4)mysql查看指定数据库表容量

select 
table_schema as 'Database_name',
table_name as 'table_name',
table_rows as 'rows',
truncate(data_length/1024/1024, 2) as 'Size_data(MB)',
truncate(index_length/1024/1024, 2) as 'Size_index(MB)'
from information_schema.tables
where table_schema='mysql'
order by data_length desc, index_length desc;

(5)自增id使用情况

SELECT table_schema , table_name , ENGINE , Auto_increment 
FROM information_schema.TABLES 
WHERE TABLE_SCHEMA NOT IN ("INFORMATION_SCHEMA","PERFORMANCE_SCHEMA", "MYSQL","SYS");

(6)表行数 

SELECT TABLE_SCHEMA , TABLE_NAME , TABLE_ROWS
FROM  information_schema.tables 
WHERE TABLE_SCHEMA not in('information_schema','sys','mysql','performance_schema')
ORDER BY table_rows DESC LIMIT 100;


7.mysql数据库用户巡检
(1)mysql查看所有用户信息

SELECT user, host FROM mysql.user;

(2)查看所有用户信息

SELECT * FROM mysql.user\G

(3)查看指定用户信息

SELECT * FROM mysql.user WHERE user in ('root','repuser')\G
Select_priv:            确定用户是否可以通过SELECT命令选择数据 
Insert_priv:            确定用户是否可以通过INSERT命令插入数据 
Update_priv:            确定用户是否可以通过UPDATE命令修改现有数据 
Delete_priv:            确定用户是否可以通过DELETE命令删除现有数据 
Create_priv:            确定用户是否可以创建新的数据库和表 
Drop_priv:                确定用户是否可以删除现有数据库和表 
Reload_priv:            确定用户是否可以执行刷新和重新加载MySQL所用各种内部缓存的特定命令,包括日志、权限、主机、查询和表 
Shutdown_priv:            确定用户是否可以关闭MySQL服务器,将此权限提供给root账户之外的任何用户时,都应当非常谨慎 
Process_priv:            确定用户是否可以通过SHOW 
File_priv:                确定用户是否可以执行SELECT INTO OUTFILE和LOAD DATA INFILE命令 
Grant_priv:            确定用户是否可以将已经授予给该用户自己的权限再授予其他用户,例如,如果用户可以插入、选择和删除foo数据库中的信息,并且授予了GRANT权限,则该用户就可以将其任何或全部权限授予系统中的任何其他用户 
References_priv:        目前只是某些未来功能的占位符,现在没有作用 
Index_priv:            确定用户是否可以创建和删除表索引 
Alter_priv:            确定用户是否可以重命名和修改表结构 
Show_db_priv:            确定用户是否可以查看服务器上所有数据库的名字,包括用户拥有足够访问权限的数据库,可以考虑对所有用户禁用这个权限,除非有特别不可抗拒的原因 
Super_priv:            确定用户是否可以执行某些强大的管理功能,例如通过KILL命令删除用户进程,使用SET GLOBAL修改全局MySQL变量,执行关于复制和日志的各种命令 
Create_tmp_table_priv:    确定用户是否可以创建临时表 
Lock_tables_priv:        确定用户是否可以使用LOCK 
Execute_priv:            确定用户是否可以执行存储过程,此权限只在MySQL 5.0及更高版本中有意义 
Repl_slave_priv:        确定用户是否可以读取用于维护复制数据库环境的二进制日志文件,此用户位于主系统中,有利于主机和客户机之间的通信 
Repl_client_priv:        确定用户是否可以确定复制从服务器和主服务器的位置 
Create_view_priv:        确定用户是否可以创建视图,此权限只在MySQL 5.0及更高版本中有意义 
Show_view_priv:        确定用户是否可以查看视图或了解视图如何执行,此权限只在MySQL 5.0及更高版本中有意义 Create_routine_priv:确定用户是否可以更改或放弃存储过程和函数,此权限是在MySQL 5.0中引入的 Alter_routine_priv:确定用户是否可以修改或删除存储函数及函数,此权限是在MySQL 5.0中引入的 Create_user_priv:确定用户是否可以执行CREATE 
Event_priv:            确定用户能否创建、修改和删除事件,这个权限是MySQL 5.1.6新增的 
Trigger_priv:            确定用户能否创建和删除触发器,这个权限是MySQL 5.1.6新增的
Create_tablespace_priv: 创建表的空间


8.mysql查看锁
(1)查看表锁
--查看需要等待的表锁数

show global status like 'Table_locks_waited';


--查看立即释放表锁数

show global status like 'Table_locks_immediate';


Table_locks_immediate / Table_locks_waited >5000 建议采用InnoDB引擎,对于高并发写入的应用InnoDB效果会好些。
Table_locks_immediate / Table_locks_waited = 235 MyISAM就足够


(2)行锁

show status like 'InnoDB_row_lock%';
Innodb_row_lock_current_waits        #当前等待锁的行锁数量
Innodb_row_lock_time                #请求行锁总耗时
Innodb_row_lock_time_avg            #请求行锁平均耗时
Innodb_row_lock_time_max            #请求行锁最久耗时
Innodb_row_lock_waits                #行锁发生次数

(3)查询死锁表及查询死锁等待时间

SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;
SELECT * FROM information_schema.INNODB_LOCK_waits;
MySQL 8.0 
select * from performance_schema.data_locks;
select * from performance_schema.data_lock_waits;

9.临时表/临时文件

show global status like 'created_tmp%';
Created_tmp_disk_tables 创建在磁盘上的临时表的数量
Created_tmp_files       临时文件文件数
Created_tmp_tables      创建的临时表的数量
每次创建临时表,Created_tmp_tables增加,如果是在磁盘上创建临时表,Created_tmp_disk_tables也增加,Created_tmp_files表示MySQL服务创建的,
理想的配置为:
Created_tmp_disk_tables / Created_tmp_tables * 100% <= 25%

10.打开表/文件数

show global status like 'Open_files';
show variables like 'open_files_limit';
比较合适的设置:Open_files / open_files_limit * 100% <= 75%

11.打开表的数量

show global status like '%Open%_table%';
Open_tables                    打开表数量
Opened_tables                表示打开过的表数量
Open_table_definitions         代表当前缓存了多少.frm文件。
Opened_table_definitions    代表自从MySQL启动后,缓存了.frm文件的数量
理想值为:
Open_tables / Opened_tables * 100% >= 85%
Open_tables / table_cache * 100% <= 95%show variables like 'table%';
table_definition_cache      控制总frm文件的数量
table_open_cache            所有线程打开的表的数量
table_open_cache_instances  打开的表缓存实例的数量

12.线程
(1)线程使用情况

show global status like 'Thread%';
threads_cached                线程缓存内的线程的数量
threads_connected            当前打开的连接的数量
threads_connected            当前打开的连接的数量
threads_created                创建用来处理连接的线程数,如果Threads_created较大,你可能要增加thread_cache_size值。
threads_running                激活的(非睡眠状态)线程数

(2)查看创建时间超过slow_launch_time秒的线程数。

show status like 'slow_launch_threads';

(3)查看查询时间超过long_query_time秒的查询的个数。

show status like 'slow_queries';

13.查询缓存

show global status like 'qcache%';  
Qcache_free_blocks            缓存中相邻内存块的个数。数目大说明可能有碎片。FLUSH QUERY CACHE会对缓存中的碎片进行整理,从而得到一个空闲块。
Qcache_free_memory            缓存中的空闲内存。
Qcache_hits                    每次查询在缓存中命中时就增大
Qcache_inserts                每次插入一个查询时就增大。命中次数除以插入次数就是不中比率。
Qcache_lowmem_prunes        缓存出现内存不足并且必须要进行清理以便为更多查询提供空间的次数。这个数字最好长时间来看;如果这个数字在不断增长,就表示可能碎片非常严重,或者内存很少。(上面的 free_blocks和free_memory可以告诉您属于哪种情况)
Qcache_not_cached            不适合进行缓存的查询的数量,通常是由于这些查询不是 SELECT 语句或者用了now()之类的函数。
Qcache_queries_in_cache        当前缓存的查询(和响应)的数量。
Qcache_total_blocks            缓存中块的数量。

查询服务器关于query_cache的配置

show variables like 'query_cache%';  
query_cache_limit                超过此大小的查询将不缓存
query_cache_min_res_unit        缓存块的最小大小
query_cache_size                查询缓存大小
query_cache_type                缓存类型,决定缓存什么样的查询,示例中表示不缓存 select sql_no_cache 查询
query_cache_wlock_invalidate    当有其他客户端正在对MyISAM表进行写操作时,如果查询在query cache中,是否返回cache结果还是等写操作完成再读表获取结果。query_cache_min_res_unit的配置默认是4KB,设置值大对大数据查询有好处,但如果查询都是小数据查询,容易造成内存碎片和浪费。查询缓存碎片率 = Qcache_free_blocks / Qcache_total_blocks * 100% (如果查询缓存碎片率超过20%且查询都是小数据量,可以用FLUSH QUERY CACHE整理缓存碎片,或者减小query_cache_min_res_unit)
查询缓存利用率 = (query_cache_size – Qcache_free_memory) / query_cache_size * 100% (查询缓存利用率在25%以下的话说明query_cache_size设置的过大,可适当减小;查询缓存利用率在80%以上而且Qcache_lowmem_prunes > 50的话说明query_cache_size可能有点小,要不就是碎片太多)
查询缓存命中率 = (Qcache_hits – Qcache_inserts) / Qcache_hits * 100%

14.排序使用情况

show global status like 'sort%'; 

15.表扫描情况

show global status like 'handler_read%';
show  status like 'com_select';
表扫描率 = Handler_read_rnd_next / Com_select


如果表扫描率超过4000,说明进行了太多表扫描,很有可能索引没有建好,增加read_buffer_size值会有一些好处,但最好不要超过8MB。

16.查看独立表空间是否开启及表空间默认大小

SHOW VARIABLES LIKE 'innodb_file_per_table';
SHOW VARIABLES LIKE 'innodb_data_file_path';

17.查看innodb文件路径

SHOW VARIABLES LIKE 'innodb_data_home_dir';
SHOW VARIABLES LIKE 'innodb_data_file_path';

18.查看等待事件

show global status like 'Innodb_buffer_pool_wait_free';
show global status like 'Innodb_log_waits';

19.查看binglog模式
(1)查看binlog相关参数配置

SHOW VARIABLES LIKE '%log_bin%';

(2)查看binlog保留天数

show VARIABLES LIKE 'expire_logs_days%';

(3)查看binlog记录模式

SHOW GLOBAL VARIABLES LIKE 'binlog_format';

(4)查看所有binlog文件

SHOW MASTER LOGS;

(5)查看当前记录的binlog文件

SHOW MASTER STATUS;

(6)查看binlog文件记录

show binlog events in 'host01-binlog.000002';

(7)手动切换binlog
 

FLUSH LOGS;log_bin_trust_function_creators={on | off }    #默认为OFF,这个参数开启会限制存储过程、Function、触发器的创建
log_bin = {on | off | base_name}                 #指定是否启用记录二进制日志或者指定一个日志路径(路径不能加.否则.后的被忽略)
sql_log_bin ={ on | off }                         #指定是否启用记录二进制日志,只有在log_bin开启的时候才有效
expire_logs_days =                                 #指定自动删除二进制日志的时间,即日志过期时间
binlog_do_db =                                     #明确指定要记录日志的数据库
binlog_ignore_db =                                 #指定不记录二进制日志的数据库
log_bin_index =                                 #指定mysql-bin.index文件的路径
binlog_format = { mixed | row | statement }     #指定二进制日志基于什么模式记录
binlog_rows_query_log_events = { 1|0 }             # MySQL5.6.2添加了该变量,当binlog format为row时,默认不会记录row对应的SQL语句,设置为1或其他true布尔值时会记录,但需要使用mysqlbinlog -v查看,这些语句是被注释的,恢复时不会被执行。
max_binlog_size =                                 #指定二进制日志文件最大值,超出指定值将自动滚动。但由于事务不会跨文件,所以并不一定总是精确。
binlog_cache_size = 32768                         #基于事务类型的日志会先记录在缓冲区,当达到该缓冲大小时这些日志会写入磁盘
max_binlog_cache_size =                         #指定二进制日志缓存最大大小,硬限制。默认4G,够大了,建议不要改
binlog_cache_use                                #使用缓存写二进制日志的次数(这是一个实时变化的统计值)
binlog_cache_disk_use                            #使用临时文件写二进制日志的次数,当日志超过了binlog_cache_size的时候会使用临时文件写日志,如果该变量值不为0,则考虑增大binlog_cache_size的值
binlog_stmt_cache_size = 32768                     #一般等同于且决定binlog_cache_size大小,所以修改缓存大小时只需修改这个而不用修改binlog_cache_size
binlog_stmt_cache_use                            #使用缓存写二进制日志的次数
binlog_stmt_cache_disk_use                        #使用临时文件写二进制日志的次数,当日志超过了binlog_cache_size的时候会使用临时文件写日志,如果该变量值不为0,则考虑增大binlog_cache_size的值
sync_binlog = { 0 | n }                         #这个参数直接影响mysql的性能和完整性
sync_binlog=0                                    #不同步,日志何时刷到磁盘由FileSystem决定,这个性能最好。
sync_binlog=n                                    #每写n次二进制日志事件(不是事务),MySQL将执行一次磁盘同步指令fdatasync()将缓存日志刷新到磁盘日志文件中。Mysql中默认的设置是sync_binlog=0,即不同步,这时性能最好,但风险最大。一旦系统奔溃,缓存中的日志都会丢失

我回来啦,目前还在从事数据库工程师方面工作,这些是日常数据库巡检总结希望能够帮助到大家,有错误和不足的地方也欢迎大家指出。
 

相关文章:

mysql日常巡检

1.查看mysql服务是否异常 systemctl status mysql_3306 查看MySQL进程是否存在 ps -ef | grep mysql 2.连接异常检查 (1)查看是否异常连接 show processlist; #或 show full processlist; (2)查看当前失败连接数 show global status like aborted_connects; (3)查看试…...

Cursor这类编程Agent软件的模型架构与工作流程

开发&#xff5c;界面&#xff5c;引擎&#xff5c;交付&#xff5c;副驾——重写全栈法则&#xff1a;AI 原生的倍速造应用流 来自全栈程序员 nine 的探索与实践&#xff0c;持续迭代中。 欢迎评论私信交流。 最近在关注和输出一系列 AIGC 架构。 模型架构与工作流程 大语…...

记录:扩展欧几里得算法

本文遵循 CC BY-NC-ND 4.0 协议&#xff0c;作者&#xff1a; U•ェ•*U \texttt{U•ェ•*U} U•ェ•*U&#xff0c;转载请获得作者授权。 前置知识 裴蜀定理/贝祖定理&#xff1a;若 a , b a,b a,b 是整数&#xff0c;且 gcd ⁡ ( a , b ) d \gcd(a,b)d gcd(a,b)d&#xf…...

学习笔记——《Java面向对象程序设计》-抽象和接口

参考教材&#xff1a; Java面向对象程序设计&#xff08;第3版&#xff09;微课视频版 清华大学出版社 抽象方法 抽象方法是使用abstract关键字修饰的成员方法&#xff0c;抽象方法在定义时不需要实现方法体。 抽象方法的定义格式如下&#xff1a; abstract void 方法名称…...

MySQL中根据binlog日志进行恢复

MySQL中根据binlog日志进行恢复 排查 MySQL 的 binlog 日志问题及根据 binlog 日志进行恢复的方法一、引言二、排查 MySQL 的 binlog 日志问题&#xff08;一&#xff09;确认 binlog 是否开启&#xff08;二&#xff09;查找 binlog 文件位置和文件名模式&#xff08;三&#…...

数据库sql语句 中 GROUP BY 关键字详解及字段要求

GROUP BY 关键字详解及字段要求 GROUP BY 的核心作用 将查询结果按指定字段分组&#xff0c;常与聚合函数&#xff08;如 COUNT, SUM, AVG 等&#xff09;结合使用&#xff0c;对分组后的数据进行统计计算。 GROUP BY 后字段的要求 非聚合字段必须出现在 GROUP BY 子句中&…...

数据集 | 柑橘果目标检测数据集

文章目录 一、数据集概述1.1 数据标注实例1.2 数据集技术规格 二、样本类别详解2.1 树上柑橘样本2.2 树下柑橘样本 三、标注工具四、数据下载地址 一、数据集概述 在农业智能化领域&#xff0c;柑橘果园的自动化监测与管理一直面临着几个关键挑战&#xff1a; 果实定位准确性…...

Arduino示例代码讲解:Project 11 - Crystal Ball 水晶球

Arduino示例代码讲解:Project 11 - Crystal Ball 水晶球 Project 11 - Crystal Ball 水晶球程序功能概述功能:硬件要求:输出:代码结构全局变量`setup()` 函数`loop()` 函数读取倾斜开关状态:检测状态变化:保存状态:运行过程注意事项Project 11 - Crystal Ball 水晶球 /…...

Redis—为何持久化使用子进程

AOF重写以及bgsave的时候为什么采用fork子进程而不是子线程&#xff1f; 进程间内存隔离 独立的内存空间&#xff1a;子进程拥有与主进程独立的内存空间&#xff0c;确保即使在重写过程中发生崩溃或错误&#xff0c;也不会影响主进程的运行和内存状态。 数据安全性&#xff…...

Vue3 + Vite + TS,使用 ExcelJS导出excel文档,生成水印,添加背景水印,dom转图片,插入图片,全部代码

Vue3 Vite TS,使用 ExcelJS导出excel文档&#xff0c;生成水印&#xff0c;添加背景水印&#xff0c;dom转图片&#xff0c;插入图片&#xff0c;全部代码 ExcelJS生成文档并导出导出表头其他函数 生成水印设置文档的背景水印dom 转图片插入图片全部代码 ExcelJS 读取&#…...

VulnHub-DarkHole_1靶机渗透教程

VulnHub-DarkHole_1靶机渗透教程 1.靶机部署 [Onepanda] Mik1ysomething 靶机下载&#xff1a;https://download.vulnhub.com/darkhole/DarkHole.zip 直接使用VMware打开就行 导入成功&#xff0c;打开虚拟机&#xff0c;到此虚拟机部署完成&#xff01; 注意&#xff1a…...

Python设计模式:对象池

1. 什么是对象池设计模式&#xff1f; 对象池设计模式是一种创建型设计模式&#xff0c;主要用于管理和复用对象&#xff0c;以提高性能和资源利用率。它通过维护一个对象的集合&#xff08;池&#xff09;&#xff0c;来避免频繁地创建和销毁对象&#xff0c;从而减少内存分配…...

【上海大学数据库原理实验报告】MySQL数据库的C/S模式部署

实验目的 掌握Linux环境下MySQL数据库的安装、初始化和基本配置。通过配置MySQL的网络通信&#xff0c;熟悉数据库的远程访问机制及其安全性要求。 实验内容 在腾讯云上租借两台服务器&#xff0c;打开3306端口以允许MySQL远程访问。 图 1 租到的服务器可在控制台观察其状态…...

deepseek快速生成简历

目录 一、需求二、模板例子 三、生成简历四、其他说明 一、需求 现在我准备跳槽到一家公司&#xff0c;这家公司已经发布了招聘需求&#xff0c;现在你想跳槽到这家公司&#xff0c;我们可以利用deepseek快速生成符合这家公司的简历内容。 二、模板 我们要进行指令明确的结构…...

什么是机器视觉3D无序堆叠抓取

机器视觉3D无序堆叠抓取是一种结合三维视觉感知、人工智能算法和机器人控制的技术,旨在从杂乱无序堆叠的物体中识别、定位并抓取目标物体。该技术广泛应用于工业自动化(如物流分拣、装配制造)、仓储管理、食品加工等领域,解决了传统二维视觉或固定规则堆叠场景下的抓取难题…...

Shell脚本中的字符串截取和规则变化

文章目录 前言if通配符判断if判断多个条件规则变化字符串的两个示例改变中间段数字改变末尾段数字 总结 前言 科技的发展会带来习惯的改变&#xff0c;特别是对于我们这批敲代码的&#xff0c;之前还积累一些奇巧淫技&#xff0c;想着在必要的时候卖弄一下&#xff0c;自从生成…...

云账号安全事件应急响应指南:应对来自中国IP的异常访问

在当今数字化时代,云服务已成为企业IT基础设施的核心。然而,随之而来的安全挑战也日益突出。本文将详细介绍当发现云账号被来自中国的IP地址异常利用时,应如何快速有效地响应,以确保账户安全并最小化潜在风险。 1. 确认异常活动 首先,我们需要确认是否真的发生了安全事件…...

python番外

#作者&#xff1a;允砸儿 #日期&#xff1a;乙巳青蛇年 三月廿五 在开始数据库的分享之前笔者简单写以下关于python的番外。笔者这块可能写的不是很好csdn上面有很多大佬&#xff0c;笔者仅以自己的思维和想法与大家分享以下。 安装必看 笔者在这里贴一个网址https://www.…...

Jetson Orin NX 16G 配置GO1强化学习运行环境

这一次收到了Jrtson Orin NX, 可以进行部署了。上一次在nano上的失败经验 Jetson nano配置Docker和torch运行环境_jetson docker-CSDN博客 本次的目的是配置cuda-torch-python38环境离机运行策略。 Jetson Orin NX SUPER 1. 烧录镜像 参考链接在ubuntu系统中安装sdk manag…...

Embedding与向量数据库__0422

thinking&#xff1a;做一个项目 1&#xff0c;业务背景&#xff0c;价值 2&#xff0c;方法&#xff0c;工具 3&#xff0c;实践&#xff08;现有的代码&#xff0c;改写的代码&#xff09; cursor编程有个cursor settings ->privacy mode隐私模式&#xff0c;但是只要连上…...

正向代理和反向代理

正向代理和反向代理是两种在不同场景下使用的代理技术&#xff0c;它们有以下区别&#xff1a; 目标和作用 正向代理 目标 &#xff1a;主要是为客户端服务&#xff0c;帮助客户端去访问外部网络资源。例如&#xff0c;企业内部网络中的员工可能需要访问互联网&#xff0c;但直…...

Android JNI开发中头文件引入的常见问题与解决方案​,提示:file not found

Android JNI开发中头文件引入的常见问题与解决方案 问题场景&#xff08;新手易犯错误&#xff09; 假设你在开发一个JNI项目&#xff0c;想要实现一个线程安全的队列&#xff08;SafeQueue&#xff09;&#xff0c;于是直接在cpp目录下创建了safe_queue.h文件&#xff0c;并开…...

三网通电玩城平台系统结构与源码工程详解(二):Node.js 服务端核心逻辑实现

本篇文章将聚焦服务端游戏逻辑实现&#xff0c;以 Node.js Socket.io 作为主要通信与逻辑处理框架&#xff0c;展开用户登录验证、房间分配、子游戏调度与事件广播机制的剖析&#xff0c;并附上多个核心代码段。 一、服务端文件结构概览 /server/├── index.js …...

案例:Windows 作为客户端免密验证(公钥验证)

一、实验前提 1.服务器端为 Linux 系统&#xff0c;且能够正常运行相关命令和服务&#xff0c;如 systemctl、ssh 服务等。同时&#xff0c;客户端为 Windows 系统&#xff0c;且具备使用 SSH 客户端工具连接到 Linux 服务器的条件 2.Linux 服务器上已安装并配置好 SSH 服务&…...

leetcode 二分查找

704. Binary Search 代码&#xff1a; class Solution { public:int search(vector<int>& nums, int target) {int n nums.size();int left 0;int right n-1;int res -1;while(left < right){int mid (leftright)/2;if(nums[mid] target){res mid;break;}…...

C++:STL模板

STL模板分为函数模板和类模板。 我想交换两个数字&#xff0c;但是类型不同&#xff0c;例如我想交换整形a,b&#xff0c;和double类型的d1,d2。如果使用C语言来实现&#xff0c;那么需要像下面一样写两个swap函数&#xff0c;但是除了类型不同&#xff0c;其它都一样&#xf…...

NumPy入门:从数组基础到数学运算

目录 一、NumPy 数组基础 &#xff08;一&#xff09;创建数组 &#xff08;二&#xff09;数组索引 &#xff08;三&#xff09;数组切片 二、数组操作 &#xff08;一&#xff09;形状操作 &#xff08;二&#xff09;数组合并与分割 三、基本数学运算 &#xff08;…...

文档管理 Document Management

以下是关于项目管理中 文档管理 的深度解析,结合高项(如软考高级信息系统项目管理师)教材内容,系统阐述文档管理的理论框架、核心流程及实战应用: 一、文档管理的基本概念 1. 定义 文档管理是对项目全生命周期中产生的各类文档进行规范化管理的过程,包括创建、存储、版…...

TCP三次握手与四次挥手面试回答版本

面试官&#xff1a;说一下TCP三次握手的过程 参考面试回答&#xff1a; 在第一次握手的时候、客户端会随机生成初始化序号、放到TCP报文头部的序号字段中、同时把SYN标志设置为1 这样就表示SYN报文&#xff08;这里是请求报文&#xff09;。客户端将报文放入 TCP 报文首部的序…...

Windows7升级Windows10,无法在此驱动器上安装Windows

一、现象描述 台式机工作站&#xff0c;从Windows7升级Windows10&#xff0c;采用MediaCreationTool_22H2制作U盘启动盘&#xff0c;安装系统遇到问题如下&#xff1a; 二、原因分析 是由于硬盘格式不是GPT硬盘&#xff0c;而Windows系统只能安装到GPT硬盘上&#xff0c;所以…...

【阿里云大模型高级工程师ACP习题集】2.2 扩展答疑机器人的知识范围

练习题 【单选题】在RAG应用的建立索引过程中,文本向量化的主要目的是( )。 A. 将文本转换为计算机能理解的数字形式,便于比较相似度 B. 对文本进行分类 C. 去除文本中的噪声数据 D. 提取文本中的关键词 【多选题】以下属于RAG应用中建立索引步骤的有( )。 A. 文档解析 B…...

Mininet--node.py源码解析

算法逻辑详解 1. 核心类结构 代码通过面向对象的方式定义了网络模拟中的各类节点&#xff0c;继承关系如下&#xff1a; Node ├── Host │ └── CPULimitedHost ├── Switch │ ├── UserSwitch │ ├── OVSSwitch │ ├── OVSBridge │ └── IVSS…...

龙虎榜——20250422

指数目前还是震荡为主&#xff0c;等待后续的选择方向 2025年4月22日龙虎榜行业方向分析 一、核心主线方向 化工&#xff08;新材料产能优化&#xff09; • 代表标的&#xff1a;红宝丽&#xff08;环氧丙烷/锂电材料&#xff09;、亚太实业&#xff08;农药中间体&#xff…...

掌握 Altium Designer:轻松定制“交换器件”工具栏

在PCB设计过程中&#xff0c;快速交换器件&#xff08;如电阻、电容、IC等&#xff09;是提高效率的关键。Altium Designer提供了灵活的工具栏定制功能&#xff0c;让用户可以创建专属的"交换器件"工具栏&#xff0c;将常用操作集中管理&#xff0c;减少菜单切换时间…...

npm的基本使用安装所有包,安装删除指定版本的包,配置命名别名

npm的基本使用安装所有包&#xff0c;安装删除指定版本的包&#xff0c;配置命名别名 安装所有依赖指定版本安装/删除包给 npm 脚本配置“命令别名&#xff08;自定义命令&#xff09;” ✅ 一、安装所有包&#xff08;恢复依赖&#xff09; 如果项目中已经存在 package.json…...

transformer预测寿命

完整的Transformer剩余寿命预测代码体系。该代码已在锂电池和工业设备数据集验证&#xff0c;支持端到端训练和预测。 python import torch import numpy as np from torch import nn, optim from sklearn.preprocessing import MinMaxScaler from torch.utils.data import Da…...

如何将视频轻松转换为GIF动态图

在社交媒体和日常聊天中&#xff0c;GIF动态图因其体积小、循环播放的特点而广受欢迎。很多人希望将视频中的精彩片段制作成GIF图分享给朋友或用于内容创作。本文将详细介绍如何简单快速地将视频转换为GIF动态图&#xff0c;无需复杂软件&#xff0c;几步即可完成。 转换步骤 …...

一文详解Pytorch环境搭建:Mac电脑pip安装Pytorch开发环境

对于希望在本地环境中进行深度学习开发的开发者来说&#xff0c;配置PyTorch工具是至关重要的一步。。对于Mac用户而言&#xff0c;搭建PyTorch开发环境并不复杂&#xff0c;本文将详细介绍如何在Mac电脑上使用pip安装PyTorch开发环境&#xff0c;帮助开发者快速上手深度学习开…...

ios开发中xxx.debug.dylib not found

问题描述&#xff1a;error: Build input file cannot be found: /Users/zhoutao/Library/Developer/Xcode/DerivedData/XfLive-effvxneriinvzwexohdsevonmhsk/Build/Products/Debug-iphoneos/xFLive.app/xFLive.debug,dylib’, pid you forget to declare this file as an out…...

Linux嵌入式系统SQlite3数据库学习笔记

前言 SQlite3是一个轻量级、嵌入式的关系型数据库管理系统&#xff0c;其中具有的核心特点&#xff1a; 1&#xff1a;嵌入式数据库&#xff1a;无需独立服务器进程&#xff0c;数据库直接嵌入到应用程序中。 2&#xff1a;单文件存储&#xff1a;整个数据库存储为单个文件&…...

【教程】安装 iterm2 打造漂亮且高性能的 mac 终端

【教程】安装 iterm2 打造漂亮且高性能的 mac 终端_mac 安装iterm2-CSDN博客 安装myzh 参考文章&#xff1a;https://blog.csdn.net/qq_44741467/article/details/135727124 下载地址&#xff1a;GitCode - 全球开发者的开源社区,开源代码托管平台 1、下载到本地 2、进入下载的…...

C++IO流

CIO流 IO: 向设备输入数据和输出数据 C的IO流设备: 文件、控制台、特定的数据类型(stringstream) c中,必须通过特定的已经定义好的类, 来处理IO(输入输出) 读写文件&#xff1a;文件流 文件流: 对文件进行读写操作 头文件: <fstream> 类库: ifstream 对文件输入&am…...

Swoole-添加自定义路由实现控制器访问

swoole本身不支持路由功能&#xff0c;默认情况我们实现路由访问可能要这样 $path $request->server[request_uri]switch ($path){case /favicon.ico:$response->status(404);$response->end(Not Found);break;case /abc/def/gg:$response->end("/abc/def/gg…...

Win10 关闭自动更新、关闭自动更新并重启

Windows 专业版及企业版用户可以通过组策略禁用或延迟更新。操作步骤如下&#xff1a; 按 Win R&#xff0c;输入 gpedit.msc 打开组策略编辑器。 导航到&#xff1a;计算机配置 > 管理模板 > Windows 组件 > Windows 更新。 修改以下设置&#xff1a; • 配置自…...

鸿道Intewell操作系统助力工业机器人控制系统自主可控

工业机器人与人形机器人的爆发式增长&#xff0c;正成为东土科技鸿道Intewell系统实现跨越式发展的核心引擎。从技术适配到生态重构&#xff0c;东土科技的三大核心能力与两大机器人赛道形成深度共振&#xff0c;其市场空间和产业地位将迎来指数级跃升。 一、工业机器人&…...

第十一届机械工程、材料和自动化技术国际会议(MMEAT 2025)

重要信息 官网&#xff1a;www.mmeat.net 时间&#xff1a;2025年06月23-25日 地点&#xff1a;中国-深圳 部分展示 征稿主题 智能制造和工业自动化 复合材料与高性能材料先进制造技术 自动化机器人系统 云制造与物联网集成 精密制造技术 智能生产线优化 实时数据分析与过…...

go语言八股文

1.go语言的接口是怎么实现 接口&#xff08;interface&#xff09;是一种类型&#xff0c;它定义了一组方法的集合。任何类型只要实现了接口中定义的所有方法&#xff0c;就被认为实现了该接口。 代码的实现 package mainimport "fmt"// 定义接口 type Shape inte…...

短视频广告创意策划简历模板

模板信息 简历范文名称&#xff1a;短视频广告创意策划简历模板&#xff0c;所属行业&#xff1a;其他 | 职位&#xff0c;模板编号&#xff1a;A4I63M 专业的个人简历模板&#xff0c;逻辑清晰&#xff0c;排版简洁美观&#xff0c;让你的个人简历显得更专业&#xff0c;找到…...

2.Spring MVC与WebFlux响应式编程

目录 一、Spring MVC核心机制与工作原理 • 请求处理流程&#xff1a;DispatcherServlet分发机制、HandlerMapping与HandlerAdapter • 核心组件&#xff1a;ViewResolver、ModelAndView、拦截器&#xff08;Interceptor&#xff09; • 注解驱动开发&#xff1a;Controller、…...

【重走C++学习之路】16、AVL树

目录 一、概念 二、AVL树的模拟实现 2.1 AVL树节点定义 2.2 AVL树的基本结构 2.3 AVL树的插入 1. 插入步骤 2. 调节平衡因子 3. 旋转处理 4. 开始插入 2.4 AVL树的查找 2.5 AVL树的删除 1. 删除步骤 2. 调节平衡因子 3. 旋转处理 4. 开始删除 结语 一、概念 …...