运维对数据库的一些要求(安装,部署,权限,mysqldump,xtrabackup的备份和还原)

news2024/11/23 23:35:11

目录

  • 一、安装部署
  • 二、数据库的权限分配
    • 1.密码策略
    • 2.MySQL中授权(grant)和撤销授权(revoke)
  • 三、数据库的备份还原
    • 1、mysqldump备份数据库
    • 2、Percona XtraBackup备份数据库
      • 1、Percona XtraBackup的介绍
      • 2、Percona XtraBackup安装
      • 3、Percona XtraBackup8.0的使用
        • 1.全库备份和还原
        • 2.增量备份和还原
        • 3.差异备份和还原
        • 4.差异备份和增量备份的区别
        • 5.压缩备份和还原

一、安装部署

1.mysql rpm下载:https://downloads.mysql.com/archives/community/
2.卸载linux自带mariadb
通过以下代码可以查看mariadb: rpm -qa | grep mariadb
卸载mariadb:yum remove mariadb-libs-5.5.52-1.el7.x86_64 -y
再次查看是否卸载成功:rpm -qa | grep mariadb

创建mysql目录到/usr/local目录下:mkdir mysql
上传安装包到/usr/local/mysql中,进行解压:
tar -xvf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar

按照依赖关系依次安装rpm包 依赖关系依次common→libs→client→server

按照顺序依次输入下列命令
rpm -ivh mysql-community-common-5.7.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.28-1.el7.x86_64.rpm
yum install -y net-tools
rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm

安装成功后输入mysql --version查看
mysql数据库yum源安装
数据库5.7版本 wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

二、数据库的权限分配

1.密码策略

MySQL5.7为root用户随机生成了一个密码,打印在error_log中,关于error_log的位置,如果安装的是RPM包,则默认是 /var/log/mysqld.log。
查看系统随机生成的密码:

grep 'password' /var/log/mysqld.log

查看数据库当前密码策略:

show VARIABLES like "%password%";

官方文档策略定义:

PolicyTests Performed
0 or LOWLength
1 or MEDIUMLength; numeric, lowercase/uppercase, and special characters
2 or STRONGLength; numeric, lowercase/uppercase, and special characters; dictionary file

更改密码策略的方法:
方法1:临时修改

更改密码策略为LOW,改为LOW或0
mysql> set global validate_password.policy=low;
Query OK, 0 rows affected (0.01 sec)
更改密码长度
mysql> SET GLOBAL validate_password_length=0;
Query OK, 0 rows affected (0.00 sec)
mysql>alter user ‘root’@‘localhost’ identified by ‘你自己得mysql密码’;

方法2:修改配置文件
在 /etc/my.cnf 配置文件中增加:

[mysqld]
validate_password=off

2.MySQL中授权(grant)和撤销授权(revoke)

create和grant结合使用

mysql> create user test@'%' identified by 'redhat';
mysql> create database test;

grant 权限列表 on 库名.表名 to 用户名@'客户端主机'
mysql> grant select, insert, update, delete on test.* to test@'%';
mysql> show grants for test@'%';   查看为test用户授予的权限
更改权限设置后需要刷新权限:FLUSH PRIVILEGES
查看用户权限: help SHOW GRANTS;

回收权限:

回收test用户的插入权限
mysql> revoke insert on test.* from test@'%';

删除用户:DROP USER username

三、数据库的备份还原

数据库在丢失或者损坏的时候需要还原。

1、mysqldump备份数据库

mysqldump备份数据库(完全备份+增加备份,速度相对较慢,适合中小型数据库)
(MyISAM是温备份,InnoDB是热备份)

mysqldump 是采用SQL级别的备份机制,它将数据表导成 SQL 脚本文件,在不同的 MySQL 版本之间升级
时相对比较合适,这也是最常用的备份方法。
备份策略可以这么定:第一次完全备份,每天一次增量备份,每周再做一次完全备份,如此一直重复。而对于
重要的且繁忙的系统来说,则可能需要每天一次全量备份,每小时一次增量备份,甚至更频繁。为了不影响线
上业务,实现在线备份,并且能增量备份,最好的办法就是采用主从复制机制(replication),在 slave
机器上做备份。

show create table Student; ---------------查看建表的信息

全量备份所有数据库:
mysqldump -uroot -predhat --all-databases > /mysqlfile/2023-11-20.sql
还原所有数据库
mysql -uroot -predhat < /mysqlfile/2023-11-20.sql
全量备份指定数据库:
mysqldump -uroot -predhat it > /mysqlfile/11.sql
还原的时候不用指定数据库,因为有建表sql:
mysql -uroot -predhat  < /mysqlfile/2.sql

mysql> show variables like ‘%log%’; 查看二进制日志开启没有,需要开启,否则不能执行增量更新
–增量备份:开启binlog,记录增删改的操作

mysqldump全量备份后需要刷新日志来记录增量备份的数据日志,在数据库出现问题后,恢复数据之前也需要刷新日志。
方法1:

[root@localhost ~]# mysqldump -uroot -predhat -F -B it > /mysqlfile/1.sql
参数 -F   在备份开始时,刷新一个新binlog日志
参数 -B   指定数据库
方法2:
mysqladmin -uroot -predhat flush-logs
方法3:
mysql> flush logs

InnoDB 表在备份时,通常启用选项 --single-transaction 来保证备份的一致性

常用:
mysqldump -uroot -p --default-character-set=utf8 --single-transaction -F -B
school > backup.sql                  

mysql> show master status; 查看当前数据库使用日志文件
mysql> show binlog events in ‘binlog.000007’; 查看日志的事件

一切准备就绪:
先创建数据库和表,并写入数据;全量备份;插入数据;删除数据库;全量备份恢复;增量备份恢复。
mysqlbinlog增量恢复方式

mysqlbinlog /var/lib/mysql/binlog.000013

基于时间点恢复
1)指定开始时间到结束时间
myslbinlog mysqlbin.000008 --start-datetime=’2014-10-45 01:10:46’ --stopdatetime=’2014-10-45 03:10:46’-r time.sql
2)指定开始时间到文件结束
myslbinlog mysqlbin.000008 --start-datetime=’2014-10-45 01:10:46’ -d esen -r
time.sql
3)从文件开头到指定结束时间
myslbinlog mysqlbin.000008 --stop-datetime=’2014-10-45 03:10:46’ -d esen -r
time.sql
基于位置点的增量恢复
1)指定开始位置到结束位置
myslbinlog mysqlbin.000008 --start-position=510 --stop-position=1312 -r pos.sql
2)指定开始位置到文件结束
myslbinlog mysqlbin.000008 --start-position=510 -r pos.sql
3)从文件开始位置到指定结束位置
myslbinlog mysqlbin.000008 --stop-position=1312 -r pos.sql

认识mysql的日志类型:

日志类型记入文件中的信息类型
错误日志记录启动、运行或停止时出现的问题
查询日志记录建立的客户端连接和执行的语句
二进制日志记录所有更改数据的语句。主要用于复制和即时点恢复
慢日志记录所有执行时间超过long_query_time秒的所有查询或不使用索引的查询
事务日志记录InnoDB等支持事务的存储引擎执行事务时产生的日志

2、Percona XtraBackup备份数据库

yum源安装:网站: https://repo.percona.com/yum/

Percona XtraBackup 下载网站:https://repo.percona.com/yum/
https://www.percona.com/downloads
官方下载太慢

1、Percona XtraBackup的介绍

无论是 24x7 高负载服务器还是低事务量服务器 环境中,Percona XtraBackup 旨在实现无缝备份 过程,而不会中断生产中服务器的性能 环境。Percona XtraBackup (PXB) 是一个 100% 开源备份解决方案,为希望从 MySQL 的全面、响应迅速且经济灵活的数据库支持中受益的组织提供商业支持。

Percona XtraBackup 是世界上唯一的开源免费 MySQL 热备份 为 InnoDB 和 XtraDB 执行非阻塞备份的软件 数据库。使用 Percona XtraBackup,您可以获得以下优势:

快速可靠地完成备份
备份期间不间断的事务处理
节省磁盘空间和网络带宽
自动备份验证
由于恢复时间更快,正常运行时间更长

xtrabakackup有3个工具,分别是
xtrabakup、
innobakupex、

xbstream 通过流数据功能,可将备份内容打包并传给管道后的压缩工具进行压缩
xtrabackup 支持InnoDB,XtraDB
innobakupex 支持Myisam,InnoDB、XtraaDB
xbstream:以专有格式压缩 xtrabackup 输出的信息

支持的存储引擎:
Percona XtraBackup 可以备份 MySQL 8.0 服务器以及 Percona Server for MySQL with XtraDB、Percona Server for MySQL 8.0 和 Percona XtraDB Cluster 8.0 上的 InnoDB、XtraDB、MyISAM 和 MyRocks 表中的数据。
局限性:

1、Percona XtraBackup 8.0 目前不可能同时支持 8.0 之前的版本
2、Percona XtraBackup 2.4 支持 MySQL 和 Percona Server for MySQL 5.65.7 数据库
3、Percona XtraBackup 8.1 不支持对数据库进行备份 在 MySQL 8.1 之前的版本中创建,Percona Server for MySQL 或 Percona XtraDB 集群。

2、Percona XtraBackup安装

用阿里或者清华大学percona源yum安装Percona XtraBackup==
事例:我用的redhat9安装这个软件
写源仓库:
cat <>/etc/yum.repos.d/percona.repo
[percona]
name = Percona
baseurl = https://mirrors.tuna.tsinghua.edu.cn/percona/release/$releasever/RPMS/$basearch
enabled = 1
gpgcheck = 0

[epel]
name=epelrepo
baseurl=https://mirrors.aliyun.com/epel/$releasever/$basearch
gpgcheck=0
enable=1
eof

[root@manged ~]# yum list all| grep xtraback -i    查看xtraback有哪些软件包
报错
Errors during downloading metadata for repository 'epel':
  - Status code: 404 for https://mirrors.aliyun.com/epel/9/x86_64/repodata/repomd.xml (IP: 118.112.22.214)
错误:为仓库 'epel' 下载元数据失败 : Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried

去epel官网:https://docs.fedoraproject.org/en-US/epel/ 下载额外的软件包。

dnf install
https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm

如果安装失败,就下载下来rpm安装:

[root@manged ~]# wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
[root@manged ~]# rpm -ivh epel-release-latest-9.noarch.rpm 
可以[root@manged ~]# yum repolist   查看
[root@manged ~]# yum list all| grep xtraback -i   好了耶
Repository epel is listed more than once in the configuration
holland-xtrabackup.noarch                                                                1.2.10-1.el9                                   epel               
percona-xtrabackup-24.x86_64                                                             2.4.28-1.el9                                   percona            
percona-xtrabackup-24-debuginfo.x86_64                                                   2.4.28-1.el9                                   percona            
percona-xtrabackup-24-debugsource.x86_64                                                 2.4.28-1.el9                                   percona            
percona-xtrabackup-80.x86_64                                                             8.0.35-30.1.el9                                percona            
percona-xtrabackup-80-debuginfo.x86_64                                                   8.0.35-30.1.el9                                percona            
percona-xtrabackup-80-debugsource.x86_64                                                 8.0.35-30.1.el9                                percona            
percona-xtrabackup-81.x86_64                                                             8.1.0-1.1.el9                                  percona            
percona-xtrabackup-81-debuginfo.x86_64                                                   8.1.0-1.1.el9

[root@manged ~]# yum install percona-xtrabackup-80
安装对应数据库版本的,速度快多了。

3、Percona XtraBackup8.0的使用

常用选项:  
   --host     指定主机
   --user     指定用户名
   --password    指定密码
   --port     指定端口
   --databases     指定数据库
   --incremental    创建增量备份
   --incremental-basedir   指定包含完全备份的目录
   --incremental-dir      指定包含增量备份的目录   
   --apply-log        对备份进行预处理操作 
   --defaults-file	  指定默认配置文件,默认是读取/etc/my.cf

一般情况下,在备份完成后,数据尚且不能用于恢复操作,因为备份的数据中可能会包含尚未提交的事务或已经提交但尚未同步至数据文件中的事务。因此,此时数据文件仍处理不一致状态。“准备”的主要作用正是通过回滚未提交的事务及同步已经提交的事务至数据文件也使得数据文件处于一致性状态。
–redo-only 不回滚未提交事务
–copy-back 恢复备份目录

1.全库备份和还原

一、全库备份
xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/data/backup -uroot -predhat -H localhost -P 3306

-p 后面是mysql的密码 -H 后面是主机,支持远程备份,-P是端口

   如果出现如下问题是在没有创建/data/backup/目录
2023-12-13T18:05:19.164770+08:00 0 [Note] [MY-011825] [Xtrabackup] Redo Log Archiving is not set up.
2023-12-13T18:05:19.257242+08:00 0 [ERROR] [MY-011825] [Xtrabackup] cannot mkdir: 2 /data/backup/

出现的这个没有权限问题:

2023-12-13T11:40:23.815725-05:00 0 [ERROR] [MY-011825] [Xtrabackup] failed to execute query 'LOCK INSTANCE FOR BACKUP' : 1227 (42000) 
Access denied; you need (at least one of) the BACKUP_ADMIN privilege(s) for this operation

解决方法:

GRANT BACKUP_ADMIN ON *.* TO 'root'@'localhost';  
FLUSH PRIVILEGES;

二、数据库恢复
删掉数据库:

先停掉数据库systemctl stop mysqld
rm -rf  /var/lib/mysql/*         mysql这个目录的所有者,所属组都是mysql   
这个目录删除之后,重启数据库就是一个全新的数据库

启动数据库,这时是一个全新的数据库。

备份之前要删除/var/lib/mysql/* 的文件,并且先停掉数据库,还原的时候数据库dead状态
先备份备份集:
备份后的数据并不处于一致性状态,为了可以用来恢复,需要使用-prepare准备备份集
[root@redhat ~]# xtrabackup --prepare --target-dir=/data/backup 准备数据备份集
[root@redhat ~]# xtrabackup --copy-back --target-dir=/data/backup 备份
然后chown mysql:mysql /var/lib/mysql/ -R
再重启数据库就完成了。非常完美!

注意:好像数据库版本不一样,还原的时候会出错

2.增量备份和还原

先进行全备:
xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/data/backup -uroot -predhat -H localhost -P 3306
增备份1:
xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/data/inc1 --incremental-basedir=/data/backup -uroot -predhat -H localhost -P 3306

解释:target-dir=/data/inc1中的inc1目录不用自己创建,--incremental-basedir=/data/backup增备份是在全备的基础上做得,这个参数是填全备的路径,全备和增备的目录要分开,不能放在一起。

增备份2:
xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/data/inc2 --incremental-basedir=/data/inc1 -uroot -predhat -H localhost -P 3306

第二天也做了增量备份 ,incremental-basedir=/data/inc1,这里的参数是参照增备1里备份的,所以这个参数是填增备1的路径。

备份好后会在/data出现3个目录,一个是全备的数据,还有个增备1的数据,还有个增备2的数据。

恢复数据:
准备还原命令:
xtrabackup --defaults-file=/etc/my.cnf --prepare --apply-log-only --target-dir=/data/backup/

xtrabackup --defaults-file=/etc/my.cnf --prepare --apply-log-only --target-dir=/data/backup --incremental-dir=/data/inc1/

xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=/data/backup --incremental-dir=/data/inc2/

以上命令就是把增量备份合并到完全备份的日志里,到时候直接还原完全备份的目录数据就行

注意:最好一次把增量备份恢复到全部不要加 --apply-log-only,不然会出现问题,说你没有准备好。

恢复数据到目录:
停止数据库并清空数据库目录
xtrabackup --defaults-file=/etc/my.cnf --copy-back --target-dir=/data/backup 恢复
chown mysql:mysql /var/lib/mysql/ -R 把文件的所有文件属组改成mysql

重启数据库,所有的数据都在,实验完成!👌
遇到问题:
当最后一次增备加了 --apply-log-only,还原的时候会报这个错误:

2023-12-15T08:03:29.481391-05:00 0 [Note] [MY-011825] [Xtrabackup] cd to /datas/backup/
2023-12-15T08:03:29.481464-05:00 0 [ERROR] [MY-011825] [Xtrabackup] The target is not fully prepared. Please prepare it without option --apply-log-only
解决方法:
xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=/datas/backup/
xtrabackup --defaults-file=/etc/my.cnf --copy-back --target-dir=/datas/backup
解释:也就是在做一次全备份,并且全备的时候删除--apply-log-only,再进行还原,这时候就成功了。
3.差异备份和还原

先进行全备:
xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/data/backup -uroot -predhat -H localhost -P 3306
增备份1:
xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/data/inc1 --incremental-basedir=/data/backup -uroot -predhat -H localhost -P 3306
增备份2:
xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/data/inc2 --incremental-basedir=/data/backup -uroot -predhat -H localhost -P 3306

解释:差异备份跟增量备份其实差不多,只不过增量备份每次的参照物是前一个,而差异备份的参照物就是全备

恢复数据:
准备还原命令:
xtrabackup --defaults-file=/etc/my.cnf --prepare --apply-log-only --target-dir=/data/backup/

xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=/data/backup --incremental-dir=/data/inc2/

解释:准备还原只需要第一次备份和最后一次备份就行

恢复数据到目录:
停止数据库并清空数据库目录
xtrabackup --defaults-file=/etc/my.cnf --copy-back --target-dir=/data/backup 恢复
chown mysql:mysql /var/lib/mysql/ -R 把文件的所有文件属组改成mysql
重启数据库,所有的数据都在,差异备份实验完成!👌

4.差异备份和增量备份的区别

在这里插入图片描述
总结一下,感觉差异备份更好用。差异备份都是基于全备备份的,而且还原的 时候只需要准备全备和最后一次增量备份就行。

5.压缩备份和还原

xtrabackup --defaults-file=/etc/my.cnf --backup --compress --target-dir=/data/backup/compressed/ -uroot -predhat -H localhost -P3306
解释:compress就是压缩的命令,因为数据库的备份的数据比较大,占用的空间也比较多,而压缩就能减少文件大小。

xtrabackup --defaults-file=/etc/my.cnf --backup --compress-threads=4 --target-dir=/data/backup/compress/ -uroot -predhat -H localhost -P3306
如果要加速压缩,可以使用--compress-threads=4 ,使用四个线程同时进行压缩

解压缩和还原:
xtrabackup --defaults-file=/etc/my.cnf --decompress --target-dir=/data/backup/compressed/
解释:解压命令 --decompress,使用这个压缩的备份集在准备备份之前需要解压,解压工具是qpress(报错就安装这个),解压的原来的文件不会被删除,可以使用 --remove-original选项清除。

xtrabackup --prepare --target-dir=/data/backup/compressed/ 准备数据集
xtrabackup --copy-back --target-dir=/data/backup/compressed 还原

解释:跟全备一样的还原
chown mysql:mysql /var/lib/mysql/ -R 把文件的所有文件属组改成mysql
重启数据库,所有的数据都在,压缩备份实验完成!👌

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

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

相关文章

低代码是什么?可能取代人工吗?

低代码开发是近年来迅速崛起的软件开发方法&#xff0c;让编写应用程序变得更快、更简单。有人说它是美味的膳食&#xff0c;让开发过程高效而满足&#xff0c;但也有人质疑它是垃圾食品&#xff0c;缺乏定制性与深度。你认为低代码到底是美味的膳食还是垃圾食品呢&#xff0c;…

PyCharm控制台异常堆栈乱码问题解决

目录 1、问题描述2、问题原因3、问题解决 1、问题描述 PyCharm环境都已经配置成了UTF-8编码&#xff0c;控制台打印中文也不会出现乱码&#xff0c;但异常堆栈信息中如果有中文会出现中文乱码&#xff1a; 这种该怎么解决呢&#xff1f; 2、问题原因 未将PyCharm编码环境与项目…

如何使用ycsb工具对mongodb进行性能测试过程

测试环境&#xff1a; linux系统&#xff1a;Centos 7.2 ,版本&#xff1a;Red Hat 4.8.5-44) YCSB简介 ycsb是一款性能测试工具&#xff0c;用Java写的&#xff0c;并且什么都可以压&#xff0c;像是mongodb&#xff0c;redis&#xff0c;mysql&#xff0c;hbase&#xff0c;等…

Leetcode的AC指南 —— 链表:19.删除链表的倒数第N个节点

摘要&#xff1a; Leetcode的AC指南 —— 链表&#xff1a;19.删除链表的倒数第N个节点。题目介绍&#xff1a;给你一个链表&#xff0c;删除链表的倒数第 n 个结点&#xff0c;并且返回链表的头结点。 文章目录 一、题目二、解析1、滑动窗口/快慢指针&#xff08;傻傻分不清&…

探索灵活性与可维护性的利器:策略(Strategy)模式详解

目录 ​编辑 1. 策略模式概述&#xff1a; 2. 主要角色&#xff1a; 3. 实例场景&#xff1a; 4. 具体实现步骤&#xff1a; 步骤一&#xff1a;定义策略接口 5. 使用策略模式的客户端代码&#xff1a; 总结&#xff1a; 我的其他博客 1. 策略模式概述&#xff1a; 策…

【Jmeter】Jmeter基础6-Jmeter元件介绍之前置处理器

前置处理器主要用于处理请求前的准备工作&#xff0c;如&#xff1a;参数、环境变量的设置等。 2.6.1、JSR223预处理程序 作用&#xff1a;请求前的准备工作。 参数说明&#xff1a; 语言&#xff1a;开发脚本所使用的语言&#xff0c;可通过下拉列表选择。参数&#xff1a;传…

Vue3快速上手笔记

Vue3快速上手 1.Vue3简介 2020年9月18日&#xff0c;Vue.js发布3.0版本&#xff0c;代号&#xff1a;One Piece&#xff08;海贼王&#xff09;耗时2年多、2600次提交、30个RFC、600次PR、99位贡献者github上的tags地址&#xff1a;https://github.com/vuejs/vue-next/release…

DC-2靶场

DC-2 下载地址&#xff1a;DC and Five86 Series Challenges - Downloads​编辑https://www.five86.com/downloads.html DC-2环境配置&#xff1a;解压后在vm虚拟机点击左上方文件-->打开-->选择解压后的DC-2。把kali和DC-2的网路适配器都改成NAT模式 flag1 首先进行主…

vue-element-admin如何把mock换成使用真实后台接口

1&#xff09;修改vue.config.js文件 use strict const path require(path) const defaultSettings require(./src/settings.js)function resolve(dir) {return path.join(__dirname, dir) }const name defaultSettings.title || vue Element Admin // page title// If you…

数据结构面试题和题目解析

以下是一些数据结构的面试题和解析&#xff1a; 1. 什么是链表&#xff1f; 链表是一种线性数据结构&#xff0c;由一系列节点组成&#xff0c;每个节点包含数据部分和指向下一个节点的指针。链表的主要优点是插入和删除操作比较方便&#xff0c;但访问链表中的元素不如访问数组…

Windows7下双网卡绑定(双网络冗余)

1.首先需要电脑主机里至少有两张网卡。 2.打开计算机管理&#xff0c;点击左侧的设备管理器&#xff1a; 3.点击展开右侧的 网络适配器&#xff1a; 4.如下是我们即将需要进行绑定的两张网卡&#xff1a; 5.右键点击第一张网卡&#xff0c;选择属性&#xff1a; 6.选择 分组 栏…

Angular中使用Intersection Observer API实现无限滚动

背景&#xff1a; 实现原理为 在data下面加一个loading元素 如果此元素进入视窗 则调用api获取新的数据加到原来的数据里面&#xff0c;这时loading就会被新数据顶下去&#xff0c;如此循环。 <div id"dataContainer"></div> <div id"loadingCo…

linux添加环境变量

一、查看当前环境变量 echo $PATH 二、将工作空间添加到环境变量&#xff0c;vim是编辑器&#xff0c;可以换成别的编辑器&#xff0c;vim编辑器的使用法可以百度一下 vim ~/.bashrc编辑器添加&#xff1a; source ~/scan_ws/devel/setup.bash

【Linux】介绍:进程退出、进程等待、进程程序替换

目录 一、进程退出 _exit函数 exit函数 _exit()与exit比较 return退出 二、进程等待 wait方法 waitpid方法 三、进程程序替换 替换函数 函数解释 命名理解 使用举例 一、进程退出 正常终止&#xff08;可以通过 echo $? 查看进程退出码&#xff09;&#xff1a;1.…

爬虫工作量由小到大的思维转变---<第十一章 Scrapy之sqlalchemy模版和改造(番外)>

前言: 正常的pymysql当然问题不大,但是我个人还是建议:sqlalchemy! 因为他更能让我们把精力放在表单设计上,而不执着于代码本身了. (-----版权所有。未经作者书面同意&#xff0c;不得转载或用于任何商业用途!----) 正文: 先提供一个基础模版: 表图: 创建表的sql: CREA…

【漏洞复现】捷诚管理信息系统 SQL注入漏洞

漏洞描述 捷诚管理信息系统是一款功能全面,可以支持自营、联营到外柜租赁的管理,其自身带工作流管理工具,能够帮助企业有效的开展内部审批工作。 该系统CWSFinanceCommon.asmx接口存在SQL注入漏洞。未经身份认证的攻击者可以通过该漏洞获取数据库敏感信息,深入利用可获取…

JavaScript值类型和引用类型两道经典面试题

JavaScript值类型和引用类型两道经典面试题 题目1题目2 题目1 首先&#xff0c;小试牛刀&#xff0c;请看第一道题。 let a {x: 10 } let b a a.x 20 console.log(b.x)a {x: 30 } console.log(b.x) a.x 40 console.log(b.x);那么上述代码输出结果是多少呢&#xff1f; …

物联网AI 物联网平台学习之概述

学物联网&#xff0c;来万物简单IoT物联网&#xff01;&#xff01; 万物简单IOT是一个集物联网教育、企业SaaS私有化部署的物联网服务平台&#xff0c;它集成了设备管理、数据安全通信、消息订阅、规则引擎等一系列物联网核心能力&#xff0c;支持设备数据上云以及海量设备数…

<VR串流线方案> PICO 4 Pro VR串流线方案 Oculus Quest2 Link串流线方案

虚拟现实技术(英文名称&#xff1a;Virtual Reality&#xff0c;缩写为VR)&#xff0c;又称虚拟实境或灵境技术&#xff0c;是20世纪发展起来的一项全新的实用技术。虚拟现实技术囊括计算机、电子信息、仿真技术&#xff0c;其基本实现方式是以计算机技术为主&#xff0c;利用并…

UE4 Niagara学习笔记

需要在其他发射器的同一个粒子位置发射其他粒子就用Spawn Particles from other Emitter 把发射器名字填上去即可 这里Move to Nearest Distance Field Subface GPU&#xff0c;可以将生成的Niagara附着到最近的物体上 使用场景就是做的火苗附着到物体上