MySQL-自带工具介绍
目录
🍁mysql
🍁mysqladmin
🦐博客主页:大虾好吃吗的博客
🦐MySQL专栏:MySQL专栏地址
MySQL数据库不仅提供了数据库的服务器端应用程序,同时还提供了大量的客户端工具程序,如mysql,mysqladmin,mysqldump等等
Mysql命令是用的最多的一个命令工具了,为用户提供一个命令行接口来操作管理MySQL 服务器。
运行‘mysql --help’ 就可以获取mysql帮助信息,这里主要介绍运维过程中用到的选项,-e 这个参数可以在linux终端就可以对mysql数据库操作,这种方法多用于脚本的使用,格式如下:
[root@localhost ~]# mysql -uroot -p123 -e "show databases" #在终端查看有哪些库
mysql
例1: 通过binlog_cache_use 以及 binlog_cache_disk_use来分析设置的binlog_cache_size是否足够
[root@localhost ~]# mysql -uroot -p123 -e "show status like 'binlog_cache%'"
mysql: [Warning] Using a password on the command line interface can be insecure.
+-----------------------+-------+
| Variable_name | Value |
+-----------------------+-------+
| Binlog_cache_disk_use | 0 |
| Binlog_cache_use | 0 |
+-----------------------+-------+
例2:通过脚本创建数据库、表及对表进行增、改、删、查操作。 脚本内容如下:
mysql1:192.168.8.1
mysql2:192.168.8.2
打开两台mysql服务器,IP分别为8.1和8.2,执行脚本使mysql1主机远程访问mysql2,对其进行增、删、改、查操作。需要注意的是,执行脚本前mysql2需要提前创建一个远程用户‘z3’、密码‘123’,因为密码在终端显示,所以会有Warning,实验中不理会就可以了。
[root@localhost ~]# cat mysql1.sh
#!/bin/bash
HOSTNAME="192.168.8.2"
PORT="3306"
USERNAME="z3"
PASSWORD="123"
DBNAME="test_db"
TABLENAME="tb1"
#create database
create_db_sql="create database if not exists ${DBNAME}"
mysql -h ${HOSTNAME} -P ${PORT} -u ${USERNAME} -p${PASSWORD} -e "${create_db_sql}"
#create table
create_table_sql="create table if not exists ${TABLENAME} (name varchar(20),id int default 0)"
mysql -h ${HOSTNAME} -P ${PORT} -u ${USERNAME} -p${PASSWORD} ${DBNAME} -e "${create_table_sql}"
#insert data to table
insert_sql="insert into ${TABLENAME} values ('tom',1)"
mysql -h ${HOSTNAME} -P ${PORT} -u ${USERNAME} -p${PASSWORD} ${DBNAME} -e "${insert_sql}"
#select data
select_sql="select * from ${TABLENAME}"
mysql -h ${HOSTNAME} -P ${PORT} -u ${USERNAME} -p${PASSWORD} ${DBNAME} -e "${select_sql}"
#update data
update_sql="update ${TABLENAME} set id=3"
mysql -h ${HOSTNAME} -P ${PORT} -u ${USERNAME} -p${PASSWORD} ${DBNAME} -e "${update_sql}"
mysql -h ${HOSTNAME} -P ${PORT} -u ${USERNAME} -p${PASSWORD} ${DBNAME} -e "${select_sql}"
#delete data
delete_sql="delete from ${TABLENAME}"
mysql -h ${HOSTNAME} -P ${PORT} -u ${USERNAME} -p${PASSWORD} ${DBNAME} -e "${delete_sql}"
mysql -h ${HOSTNAME} -P ${PORT} -u ${USERNAME} -p${PASSWORD} ${DBNAME} -e "${select_sql}"
使用mysql1主机创建授予z3用户可以在指定的源登录
[root@mysql1 ~]# mysql -uroot -p123 -e "grant all on test_db.* to z3@'192.168.8.%' identified by '123'"
测试z3用户连接mysql服务器
[root@mysql ~]# mysql -uz3 -p123 -h 192.168.8.2
#省略部分内容
授予脚本执行权限
[root@mysql1 ~]# chmod +x /root/mysql1.sh #给脚本执行权限
[root@mysql1 ~]# ./mysql1.sh #执行
如果在连接时候使用了“-E, --vertical”参数,登入之后的所有查询结果都将以纵列显示,效果和我们在一条查询之后以“\G”结尾一样。
[root@mysql1 ~]# mysql -uroot -p123 -E
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.40 Source distribution
Copyright (c) 2000, 2022, 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> show databases;
*************************** 1. row ***************************
Database: information_schema
*************************** 2. row ***************************
Database: mysql
*************************** 3. row ***************************
Database: performance_schema
*************************** 4. row ***************************
Database: sys
4 rows in set (0.01 sec)
“-H, --html”与“-X, --xml”,在启用这两个参数之后,select出来的所有结果都会按照“Html”与“Xml”格式来输出,在有些场合之下,比如希望Xml或者Html 文件格式导出某些报表文件的时候,是非常方便的。
[root@mysql1 ~]# mysql -X -uroot -p123 -e "show databases"
mysql: [Warning] Using a password on the command line interface can be insecure.
<?xml version="1.0"?>
<resultset statement="show databases
" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><row><field name="Database">information_schema</field></row>
<row><field name="Database">mysql</field></row>
<row><field name="Database">performance_schema</field></row>
<row><field name="Database">sys</field></row>
</resultset>
“--prompt=name”参数对于做运维的人来说是一个非常重要的参数选项,其主要功能是定制自己的mysql提示符的显示内容。在默认情况下,我们通过mysql登入到数据库之后,mysql的提示符只是一个很简单的内容”mysql>“,没有其他任何附加信息。非常幸运的是mysql通过“--prompt=name”参数给我们提供了自定义提示信息的办法,可以通过配置显示登入的主机地址,登录用户名,当前时间,当前数据库schema,MySQLServer 的一些信息等等。我个人强烈建议将登录主机名,登录用户名和所在的schema 这三项加入提示内容,因为当大家手边管理的MySQL 越来越多,操作越来越频繁的时候,非常容易因为操作的时候没有太在意自己当前所处的环境而造成在错误的环境执行了错误的命令并造成严重后果的情况。如果我们在提示内容中加入了这几项之后,至少可以更方便的提醒自己当前所处环境,以尽量减少犯错误的概率。
个人建议提示符定义:
"\u@\h : \d \r:\m:\s> "
显示效果:
[root@mysql1 ~]# mysql -uroot -p123 --prompt="\\u@\\h : \\d \\r:\\m:\\s> "
#省略部分内容
root@localhost : (none) 10:52:19>
提示符解释: \u 表示用户名, \h 表示主机名, \d 表示当前数据库,\r小时(12小时制),\m分种,\s秒,\R The current time, in 24-hour military time (0–23)
“--tee=name”参数也是对运维人员非常有用的参数选项,用来告诉mysql,将所有输入和输出内容都记录进文件。在我们一些较大维护变更的时候,为了方便被查,最好是将整个操作过程的所有输入和输出内容都保存下来。 假如mysql命令行状态下,要进行大量的交互操作,其实可以把这些操作记录在log中进行审计,很简单
[root@mysql1 ~]# mysql -uroot -p123 --tee=/opt/my.log
也可以在服务器上的/etc/my.cnf中的[client]加入 tee =/tmp/client_mysql.log即可. 注:若没有[client]就添加即可 或者在mysql>提示符下执行下面的命令> tee /opt/my.log,当登录mysql执行操作时,都将把数据保存到my.log文件内。
[root@mysql1 ~]# cat /opt/my.log
#省略部分内容
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
mysql> exit
mysqladmin
mysqladmin Usage: mysqladmin [OPTIONS] commandcommand ... mysqadmin,顾名思义,提供的功能都是与MySQL 管理相关的各种功能。如MySQL Server状态检查,各种统计信息的flush,创建/删除数据库,关闭MySQL Server 等等。mysqladmin所能做的事情,虽然大部分都可以通过mysql连接登录上MySQL Server 之后来完成,但是大部分通过mysqladmin来完成操作会更简单更方便。这里将介绍一下经常使用到的几个常用功能: ping 命令可以很容易检测MySQL Server 是否还能正常提供服务。
mysql本机上测试:
在其他主机上测试mysql server是否正常提供服务
注1:地址192.168.8.1是mysql1的ip
注2:mysql1的防火墙要允许3306/tcp通信
注3:在mysql1上创建授权用户
mysqladmin其他参数选项可以通过执行“mysqladmin --help”或man mysqladmin得到帮助信息。 编写一个简单的mysql监控脚本,内容如下:
#!/bin/bash
USER=root
PWD=123
HOST=192.168.8.1
#监测服务是否正常
mysqladmin -u${USER} -p${PWD} -h${HOST} ping 2>/dev/null
if [ $? -ne 0 ];thenecho "db down"
fi
#获取mysql当前状态值
mysqladmin -u${USER} -p${PWD} -h${HOST} status 2>/dev/null
#获取数据库当前连接信息
mysqladmin -u${USER} -p${PWD} -h${HOST} processlist 2>/dev/null
#获取数据库当前的连接数
mysql -u${USER} -p${PWD} -h${HOST} information_schema -BNe "select user,host,count(*) from processlist group by host,user"
#显示mysql的启动时长
mysql -u${USER} -p${PWD} -h${HOST} -NBe "show status like '%Uptime'" 2>/dev/null |awk '/^Uptime/{a=$NF/3600;print $(NF-1),a"hour"}'
#查看数据库所有库大小
mysql -u${USER} -p${PWD} -h${HOST} information_schema -e "select TABLE_SCHEMA as db,concat(round((sum(DATA_LENGTH+INDEX_LENGTH))/1024/1024,2),'M') as total from tables group by TABLE_SCHEMA"
-
Mysql的系统数据库
1)INFORMATION_SCHEMA数据字典:此数据库存贮了其他所有数据库的信息(元数据)。元数据是关于数据的数据,如database name或table name,列的数据类型,或访问权限等。
INFORMATION_SCHEMA库的主要系统表 TABLES表:提供了关于数据库中的表和视图的信息。(Table_schema字段代表 数据表所属的数据库名)
SELECT * FROM information_schema.TABLES WHERE TABLE_SCHEMA='数据库名'; COLUMNS表:提供了表中的列信息。详细表述了某张表的所有列以及每个列的信息。
SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA='数据库名‘' AND TABLE_NAME='表名' TABLE_CONSTRAINTS表:存储主键约束、外键约束、唯一约束、check约束。各字段的说明信息SELECT * FROM information_schema.TABLE_CONSTRAINTS WHERE TABLE_SCHEMA='数据库名' AND TABLE_NAME='表名' STATISTICS表:提供了关于表索引的信息。
SELECT * FROM information_schema.STATISTICS WHERE TABLE_SCHEMA='数据库名’ AND TABLE_NAME=’表名’ 。
2)performance_schema性能字典,此数据库为数据库性能优化提供重要的参考信息。
3)MYSQL数据库: 该数据库也是个核心数据库,存储用户的权限信息与帮助信息。
4)MySQL5.7 提供了 sys系统数据库。 sys数据库里面包含了一系列的存储过程、自定义函数以及视图来帮助我们快速的了解系统的元数据信息。sys系统数据库结合了information_schema和performance_schema的相关数据,让我们更加容易的检索元数据。
-
mysqldump: 这个工具其功能就是将MySQL Server中的数据以SQL 语句的形式从数据库中dump 成文本文件。mysqldump是做为MySQL 的一种逻辑备份工具
-
mysqlbinlog mysqlbinlog程序的主要功能就是分析MySQL Server 所产生的二进制日志(也就是binlog)。通过mysqlbinlog,我们可以解析出binlog中指定时间段或者指定日志起始和结束位置的内容解析成SQL 语句。
-
Mysqlslap性能测试MySQL二种存储引擎 mysqlslap是mysql自带的基准测试工具
优点:查询数据,语法简单,灵活容易使用.该工具可以模拟多个客户端同时并发的向服务器发出查询更新,给出了性能测试数据而且提供了多种引擎的性能比较。mysqlslap为mysql性能优化前后提供了直观的验证依据,建议系统运维和DBA人员应该掌握一些常见的压力测试工具,才能准确的掌握线上数据库支撑的用户流量上限及其抗压性等问题。
现在看一下这个压力测试工具mysqlslap,关于他的选项手册上以及--help介绍的很详细。 这里解释一下一些常用的选项。
--concurrency代表并发数量,多个可以用逗号隔开。例如:concurrency=50,100,200 --engines代表要测试的引擎,可以有多个,用分隔符隔开。 --iterations代表要运行这些测试多少次,即运行多少次后,得到结果。 --auto-generate-sql 代表用系统自己生成的SQL脚本来测试。 --auto-generate-sql-load-type 代表要测试的是读还是写还是两者混合的(read,write,update,mixed) --number-of-queries 代表总共要运行多少次查询。每个客户运行的查询数量可以用查询总数/并发数来计算。比如倒数第二个结果2=200/100。 --debug-info 代表要额外输出CPU以及内存的相关信息(注:只有在MySQL用--with-debug编译时可)。 --number-int-cols 代表测试表中的INTEGER类型的属性有几个。 --number-char-cols代表测试表的char类型字段的数量。 --create-schema 代表自己定义的模式(在MySQL中也就是库即创建测试的数据库)。 --query 代表自己的SQL脚本。 --only-print如果只想打印看看SQL语句是什么,可以用这个选项。 --csv=name 生产CSV格式数据文件 查看Mysql数据库默认最大连接数。
可以看到mysql5.7.13默认是151,注:不同版本默认最大连接数不差别。一般生产环境是不够的,在my.cnf[mysqld]下添加 max_connections=1024 增加到1024,重启Mysql。 修改my.cnf文件并重启mysqld服务。
查看修改后的最大连接数
查看Mysql默认使用存储引擎,如下查看: mysql> show engines;
现在我们来看一下具体测试的例子 用自带的SQL脚本来测试:
[root@localhost ~]# mysqlslap --defaults-file=/etc/my.cnf --concurrency=100,200 --iterations=1 --number-int-cols=20 --number-char-cols=30 --auto-generate-sql --auto-generate-sql-add-autoincrement --auto-generate-sql-load-type=mixed --engine=myisam,innodb --number-of-queries=2000 -uroot -p123 --verbose
显示结果:
测试说明:模拟测试两次读写并发,第一次100,第二次200,自动生成SQL脚本,测试表包含20个init字段,30个char字段,每次执行2000查询请求。测试引擎分别是myisam,innodb。
测试结果说明: Myisam第一次100客户端同时发起增查用0.413/s,第二次200客户端同时发起增查用0.509/s Innodb第一次100客户端同时发起增查用0.692/s,第二次200客户端同时发起增查用0.617/s 由此可见MyISAM存储引擎处理性能是最好的,也是最常用的,但不支持事务。InonDB存储引擎提供了事务型数据引擎(ACID),在事务型引擎里使用最多的。具有事务回滚,系统修复等特点。
Mysqlslap测试工具生产CSV格式数据文件并转换成图表形式:
[root@localhost ~]# mysqlslap --defaults-file=/etc/my.cnf --concurrency=100,200 --iterations=1 --number-int-cols=20 --number-char-cols=30 --auto-generate-sql --auto-generate-sql-add-autoincrement --auto-generate-sql-load-type=mixed --engine=myisam,innodb --number-of-queries=2000 -uroot -p123 --csv=/root/a.csv
执行结果:
将a.csv拷贝到windows主机上,打开并生成图表。
用我们自己定义的SQL 脚本或语句来测试 首先准备好要测试的数据库表,这里我们编写一个生成表的脚本去完成 脚本内容如下:
[root@mysql1 ~]# cat /root/mysql2.sh
#!/bin/bash
HOSTNAME="localhost"
PORT="3306"
USERNAME="root"
PASSWORD="123"
DBNAME="test1"
TABLENAME="tb1"
#create database
mysql -h ${HOSTNAME} -P ${PORT} -u ${USERNAME} -p${PASSWORD} -e "drop database if exists ${DBNAME}"
create_db_sql="create database if not exists ${DBNAME}"
mysql -h ${HOSTNAME} -P ${PORT} -u ${USERNAME} -p${PASSWORD} -e "${create_db_sql}"
#create table
create_table_sql="create table if not exists ${TABLENAME}(stuid int not null primary key,stuname varchar(20) not null,stusex char(1) not null,cardid
varchar(20) not null,birthday datetime,entertime datetime,address varchar(100) default null)"
mysql -h ${HOSTNAME} -P ${PORT} -u ${USERNAME} -p${PASSWORD} ${DBNAME} -e"${create_table_sql}"
#insert data to table
i=1
while [ $i -le 20000 ]
do
insert_sql="insert into ${TABLENAME} values($i,'zhangsan','1','1234567890123456','1999-10-10','2016-9-3','zhongguo beijingshi changpinqu')"
mysql -h ${HOSTNAME} -P ${PORT} -u ${USERNAME} -p${PASSWORD} ${DBNAME} -e"${insert_sql}"
let i++
done
#select data
select_sql="select count(*) from ${TABLENAME}"
mysql -h ${HOSTNAME} -P ${PORT} -u ${USERNAME} -p${PASSWORD} ${DBNAME} -e "${select_sql}"
授权脚本x执行权限
[root@mysql1 ~]# chmod +x /root/mysql2.sh
执行脚本mysql3.sh生成mysqlslap工具需要的测试表
[root@mysql1 ~]# /root/mysql2.sh
执行mysqlslap工具进行测试
[root@mysql1 ~]# mysqlslap --defaults-file=/etc/my.cnf --concurrency=10,20 --iterations=1 --create-schema='test1' --query='select * from test1.tb1' --engine=myisam,innodb --number-of-queries=2000 -uroot -p123 –verbose
显示结果:
mysqlslap: [Warning] Using a password on the command line interface can be insecure.
BenchmarkRunning for engine myisamAverage number of seconds to run all queries: 1.947 secondsMinimum number of seconds to run all queries: 1.947 secondsMaximum number of seconds to run all queries: 1.947 secondsNumber of clients running queries: 10Average number of queries per client: 200
BenchmarkRunning for engine myisamAverage number of seconds to run all queries: 2.171 secondsMinimum number of seconds to run all queries: 2.171 secondsMaximum number of seconds to run all queries: 2.171 secondsNumber of clients running queries: 20Average number of queries per client: 100
BenchmarkRunning for engine innodbAverage number of seconds to run all queries: 1.777 secondsMinimum number of seconds to run all queries: 1.777 secondsMaximum number of seconds to run all queries: 1.777 secondsNumber of clients running queries: 10Average number of queries per client: 200
BenchmarkRunning for engine innodbAverage number of seconds to run all queries: 2.042 secondsMinimum number of seconds to run all queries: 2.042 secondsMaximum number of seconds to run all queries: 2.042 secondsNumber of clients running queries: 20Average number of queries per client: 100
注:通过mysqlslap工具对mysql server进行压力测试,可以通过--concurrency、--number-of-queries等选项的值查看每次测试的结果,通过反复测试、优化得出mysql server的最大并发数。
如果mysqlslap工具输出结果为Segmentation fault (core dumped)基本表示走超出mysql server的负载。
相关文章:

MySQL-自带工具介绍
目录 🍁mysql 🍁mysqladmin 🦐博客主页:大虾好吃吗的博客 🦐MySQL专栏:MySQL专栏地址 MySQL数据库不仅提供了数据库的服务器端应用程序,同时还提供了大量的客户端工具程序,如mysql&a…...
12个你应该知道的Python库
12个你应该知道的Python库 1. python命令行argparse 更简单的begins2. colorama改善命令行窗口3. pyqtgraph 它提供了不同的功能选择,尤其适用于实时和交互式可视化4. 网页浏览器Pywebview5. psutil 提供了完整的获取系统信息的方法 或许cpu近5s的基本报告6. Watchd…...

【数据分析之道-NumPy(七)】numpy字符串函数
文章目录 专栏导读1、函数说明2、add()函数3、multiply()函数4、center()函数5、capitalize()函数6、title()函数7、lower()函数8、upper()函数9、split()函数10、splitlines()函数11、strip()函数12、join()函数 专栏导读 ✍ 作者简介:i阿极,CSDN Pytho…...

【Linux】Linux基本指令(1)
一.前言 从这篇文章开始,博主就开启了Linux学习之路了,本篇文章也是博主的第一篇Linux的文章,今后也会持续不断更新的。 二.理解文件 1.文件 文件文件数据文件属性(所以一个建好的文件就算没有数据,也占用存储空间&am…...

更全面的对比GPT4和Claude对MLIR的掌握能力
本文构造了20个MLIR基础概念的问题以及使用OneFlow IR转换为Tosa IR的5个代码段来评测GPT4和Claude对于MLIR的掌握能力,我的结论是对于基础概念的理解Claude整体上和GPT4持平,而在阅读相关代码片段时Claude表现出了比GPT4更强一点的理解能力。 0x0. 前言…...

阿里ARouter 路由框架解析
一、简介 众所周知,在日常开发中,随着项目业务越来越复杂,项目中的代码量也越来越多,如果维护、扩展、解耦等成了一个非常头疼问题,随之孕育而生的诸如插件化、组件化、模块化等热门技术。 而其中组件化中一项的难点&…...

大型医院健康体检管理系统源码(PEIS)
一、体检管理系统(PEIS)概念 体检管理系统(PEIS)是以健康为中心的身体检查。一般医学家认为健康体检是指在身体尚未出现明显疾病时,对身体进行的全面检查。方便了解身体情况,筛查身体疾病。即应用体检手段对…...

java 获取时间的方法
Java的时间是通过字节码指令来控制的,所以 java程序的运行时间是通过字节码指令来控制的。但是由于 Java程序在运行时, JVM会产生一些状态,所以在执行 JVM指令时, JVM也会产生一些状态。 我们在执行 java程序时,主要是…...
Block原理(二)- 用白话说说底层源码,不扯代码
之前有一篇关于block的源码探究分析 Block原理(一),时至今日,总觉的那篇文章说得不够流畅,今天打算从顶层设计的角度试着拆解下block的设计思想,拗脑的源码部分就不必再次触碰了,尽量保障这篇文…...
springboot整合knife4j接口文档成公共模块使用
theme: smartblue 之前项目中一直用的是swagger-ui进行接口文档的调用和使用,最近前端一直反馈页面不美观,调用凌乱,等一系列问题。基于这个问题我决定将其进行更改调整,上网搜索了一下发现knife4j是目前接口文档不错的一款插件。…...

软件测试需要学什么
软件测试近些年也是比较热门的行业,薪资高、入门门槛低,让很多开发人员想纷纷加入软件开发这个行业,想要成为这一岗位的一员,想要进入软件测试行业,他们需要学习什么呢? 软件测试需要学习的还挺多的&#…...

【蓝桥杯省赛真题17】python删除字符串 青少年组蓝桥杯python编程省赛真题解析
目录 python删除字符串 一、题目要求 1、编程实现 2、输入输出 二、解题思路...
C# LINQ 查询语句和方法的区别及使用
C# LINQ(Language-Integrated Query)是一种强类型、编译时的查询技术,它可以通过统一的语法对多种数据源进行查询和操作,包括对象、集合、数据库等。LINQ 提供了两种查询方式:查询语句和扩展方法。 查询语句ÿ…...

【nacos配置中心】源码部分解析
启动初始化 SpringApplication.prepareContext applyInitializers 回调ApplicationContextInitializer的initialize方法 getInitializers()从applicationContext获取List<ApplicationContextInitializer<?>> initializers 这个集合是通过SpringApplication的…...
Kotlin 1.6.0 的新特性
1、稳定版对于枚举、密封类与布尔值主语穷尽 when 语句 一个详尽的when语句包含了所有主题可能的类型或值的分支,或者对于一些类型包含一个else分支。它覆盖了所有可能的情况,使代码更加安全。 即将禁止非详尽的when语句,以使行为与when表达…...

nextjs13临时笔记
动态路由 文件夹以中括号命名[id] -pages: --list: ---[id]: ----index.jsx(访问路径/list/1 即这种形式/list/:id) ---index.jsx(访问路径/list)[...params]gpt接口分析 初始化项目 npm install next react react-dom # or yarn add next react react-dom # or pnpm add n…...
云计算与区块链之间有什么区别?
区块链是一种去中心化的分布式数字账本,可实现安全透明的交易和数据存储。 它使用节点网络来验证和验证交易。 云计算通过互联网提供计算资源,例如服务器、存储和软件。区块链是一种分散且不可变的虚拟数据分类账,用于维护交易信息和监控网络…...
sed命令常用例子
替换文件中的文本 将文件file.txt中的所有"old_text"替换成"new_text": sed -i ‘s/old_text/new_text/g’ file.txt 删除文件中的某行 删除文件file.txt中的第5行: sed -i ‘5d’ file.txt 在文件中添加一行 在文件file.txt…...

MB510 3BSE002540R1在机器视觉工业领域最基本的应用
MB510 3BSE002540R1在机器视觉工业领域最基本的应用 大家都说人类感知外界信息的80%是通过眼睛获得的,图像包含的信息量是最巨大的。那么机器视觉技术的出现,就是为机器设备安上了感知外界的眼睛,使机器具有像人一样的视觉功能,…...

nightingale-0-介绍单机二进制部署
(一) 夜莺介绍 Nightingale | 夜莺监控,一款先进的开源云原生监控分析系统,采用 All-In-One 的设计,集数据采集、可视化、监控告警、数据分析于一体,与云原生生态紧密集成,提供开箱即用的企业级监控分析和告警能力。于…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...

家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案
随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)
宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...
Robots.txt 文件
什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...

如何在最短时间内提升打ctf(web)的水平?
刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...

九天毕昇深度学习平台 | 如何安装库?
pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子: 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...