MySQL主从的介绍与应用

mysql主从

文章目录

  • mysql主从
    • 1. 主从简介
      • 1.1 主从作用
      • 1.2 主从形式
    • 2. 主从复制原理
    • 3. 主从复制配置
      • 3.1 mysql安装(两台主机安装一致,下面只演示一台主机操作)
      • 3.2 mysql主从配置
        • 3.2.1 确保从数据库与主数据库里的数据一样
        • 3.2.2 在主数据库里创建一个同步账号授权给从数据库使用
        • 3.2.3 配置主数据库
        • 3.2.4 配置从数据库
        • 3.2.5 测试验证

1. 主从简介

在现代企业中,数据显得尤为重要,而存储数据的数据库选择又五花八门,但无论是何种数据库,均存在着一种隐患。

想几个问题:

  • 用一台数据库存放数据,若此数据库服务器宕机了导致数据丢失怎么办?
  • 业务量大了,数据多了,访问的人多了,一台数据库无法保证服务质量了怎么办?

1.1 主从作用

  • 实时灾备,用于故障切换
  • 读写分离,提供查询服务
  • 备份,避免影响业务

1.2 主从形式

img

  • 一主一从
  • 主主复制
  • 一主多从—扩展系统读取的性能,因为读是在从库读取的
  • 多主一从—5.7开始支持
  • 联级复制

2. 主从复制原理

在这里插入图片描述

主从复制步骤:

  • 主库将所有的写操作记录到binlog日志中并生成一个log dump线程,将binlog日志传给从库的I/O线程
  • 从库生成两个线程,一个I/O线程,一个SQL线程
    • I/O线程去请求主库的binlog,并将得到的binlog日志写到relay log(中继日志) 文件中
    • SQL线程,会读取relay log文件中的日志,并解析成具体操作,来实现主从的操作一致,达到最终数据一致的目的

3. 主从复制配置

主从复制配置步骤:

  1. 确保从数据库与主数据库里的数据一样
  2. 在主数据库里创建一个同步账号授权给从数据库使用
  3. 配置主数据库(修改配置文件)
  4. 配置从数据库(修改配置文件)

需求:
搭建两台MySQL服务器,一台作为主服务器,一台作为从服务器,主服务器进行写操作,从服务器进行读操作

环境说明:

数据库角色IP应用与系统版本有无数据
主数据库192.168.116.140rockylinux9无数据
从数据库192.168.116.143rockylinux9无数据

3.1 mysql安装(两台主机安装一致,下面只演示一台主机操作)

分别在主从两台服务器上安装mysql8.0.35版本,此处略过安装步骤,若有疑问请参考《mysql基础》与《mysql进阶》两篇文章。

1.修改主机名
[root@localhost ~]# hostnamectl set-hostname master
[root@localhost ~]# bash
[root@master ~]# [root@localhost ~]# hostnamectl set-hostname slave
[root@localhost ~]# bash
[root@slave ~]# 2.关闭防火墙
[root@master ~]# systemctl disable --now firewalld
Removed "/etc/systemd/system/multi-user.target.wants/firewalld.service".
Removed "/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service".
[root@master ~]# vi /etc/selinux/config
[root@master ~]# cat /etc/selinux/config|grep '^SELINUX'
SELINUX=disabled
SELINUXTYPE=targeted
[root@master ~]# setenforce 0
[root@master ~]# getenforce
Permissive[root@slave ~]# systemctl disable --now firewalld
Removed "/etc/systemd/system/multi-user.target.wants/firewalld.service".
Removed "/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service".
[root@slave ~]# vi /etc/selinux/config
[root@slave ~]# cat /etc/selinux/config|grep '^SELINUX'
SELINUX=disabled
SELINUXTYPE=targeted
[root@slave ~]# setenforce 0
[root@slave ~]# getenforce
Permissive3.下载软件包
[root@master ~]# ls
anaconda-ks.cfg  mysql-8.0.35-linux-glibc2.28-x86_64.tar.xz4.压缩软件包
[root@master ~]# tar xf mysql-8.0.35-linux-glibc2.28-x86_64.tar.xz  -C /usr/local
[root@master ~]# cd /usr/local
[root@master local]# ls
bin  etc  games  include  lib  lib64  libexec  mysql-8.0.35-linux-glibc2.28-x86_64  sbin  share  src
[root@master local]# mv mysql-8.0.35-linux-glibc2.28-x86_64 mysql
[root@master local]# ls
bin  etc  games  include  lib  lib64  libexec  mysql  sbin  share  src
[root@master local]# 5.配置环境变量
[root@master local]# ls
bin  etc  games  include  lib  lib64  libexec  mysql  sbin  share  src
[root@master local]# echo 'export PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
[root@master local]# source /etc/profile.d/mysql.sh 6.做软连接
[root@master local]# ls
bin  etc  games  include  lib  lib64  libexec  mysql  sbin  share  src
[root@master local]# ln -s /usr/local/mysql/include/ /usr/include/mysql7.告知lib在哪
[root@master local]# vim /etc/ld.so.conf.d/mysql.conf
[root@master local]# ldconfig -v8.添加帮助文档
[root@master local]# ls
bin  etc  games  include  lib  lib64  libexec  mysql  sbin  share  src
[root@master local]# vim /etc/man_db.conf 
#
MANDATORY_MANPATH                       /usr/man
MANDATORY_MANPATH                       /usr/share/man
MANDATORY_MANPATH                       /usr/local/share/man
MANDATORY_MANPATH                       /usr/local/mysql/man
#---------------------------------------------------------9.创建用户并修改/usr/local/mysql/的所有者和所属组为mysql
[root@master ~]# useradd -r -M -s /sbin/nologin mysql
[root@master ~]# id mysql
uid=991(mysql) gid=991(mysql) groups=991(mysql)
[root@master ~]# chown -R mysql.mysql /usr/local/mysql 
[root@master ~]# ll -d /usr/local/mysql
drwxr-xr-x. 9 mysql mysql 129 Dec 26 16:40 /usr/local/mysql10.创建数据库存放数据的目录并修改属组
[root@master ~]# mkdir /opt/data
[root@master ~]# chown -R mysql.mysql /opt/data
[root@master ~]# ll -d /opt/data
drwxr-xr-x. 2 mysql mysql 6 Dec 26 16:48 /opt/data11.初始化
[root@master ~]# mysqld --initialize --user mysql --datadir /opt/data
2023-12-26T08:49:43.219451Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.35) initializing of server in progress as process 57766
2023-12-26T08:49:43.231426Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2023-12-26T08:49:43.579789Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2023-12-26T08:49:45.083767Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: otVyge;=q7eY
[root@master ~]# echo 'otVyge;=q7eY' > pass
[root@master ~]# cat pass
otVyge;=q7eY12.向配置文件添加内容
[root@master ~]# vim /etc/my.cnf
[root@master ~]# cat /etc/my.cnf
[mysqld]
basedir = /usr/local/mysql
datadir = /opt/data
port = 3306
socket = /tmp/mysql.sock
pid-file = /opt/data/mysql.pid
user = mysql
skip-name-resolve13.给mysql服务指定位置
[root@master ~]# cd /usr/local/mysql
[root@master mysql]# ls
bin  docs  include  lib  LICENSE  man  README  share  support-files
[root@master mysql]# cd support-files/
[root@master support-files]# ls
mysqld_multi.server  mysql-log-rotate  mysql.server
[root@master support-files]# vim mysql.server 
[root@master support-files]# cat mysql.server | grep '^datadir'
datadir=/opt/data
datadir_set=
[root@master support-files]# cat mysql.server | grep '^basedir'
basedir=/usr/local/mysql
[root@master support-files]# systemctl daemon-reload14.启动服务
[root@master support-files]# service mysqld start
Starting MySQL.Logging to '/opt/data/master.err'.SUCCESS! 
[root@master support-files]# ss -antl
State              Recv-Q             Send-Q                          Local Address:Port                            Peer Address:Port             Process             
LISTEN             0                  128                                   0.0.0.0:22                                   0.0.0.0:*                                    
LISTEN             0                  70                                          *:33060                                      *:*                                    
LISTEN             0                  151                                         *:3306                                       *:*                                    
LISTEN             0                  128                                      [::]:22                                      [::]:*                                    15.设置开机自启
[root@master ~]# cd /usr/lib/systemd/system
[root@master system]# cp sshd.service mysql.service
[root@master system]# vim mysql.service
[root@master system]# cat mysql.service 
[Unit]
Description=mysql server daemon
After=network.target sshd-keygen.target[Service]
Type=forking
ExecStart=service mysqld start
ExecStop=service mysqld stop
ExecReload=/bin/kill -HUP $MAINPID[Install]
WantedBy=multi-user.target
[root@master system]# service mysqld stop
Shutting down MySQL.ss. SUCCESS! 
[root@master system]# systemctl daemon-reload
[root@master system]# systemctl status mysql
○ mysql.service - mysql server daemonLoaded: loaded (/usr/lib/systemd/system/mysql.service; disabled; preset: disabled)Active: inactive (dead)
[root@master system]# systemctl enable --now mysql
Created symlink /etc/systemd/system/multi-user.target.wants/mysql.service → /usr/lib/systemd/system/mysql.service.
[root@master system]# systemctl status mysql
● mysql.service - mysql server daemonLoaded: loaded (/usr/lib/systemd/system/mysql.service; enabled; preset: disabled)Active: active (running) since Tue 2023-12-26 17:06:55 CST; 7s agoProcess: 99845 ExecStart=service mysqld start (code=exited, status=0/SUCCESS)Main PID: 99862 (mysqld_safe)Tasks: 39 (limit: 10820)Memory: 371.5MCPU: 829msCGroup: /system.slice/mysql.service├─ 99862 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/opt/data --pid-file=/opt/data/mysql.pid└─100052 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/opt/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=ma>Dec 26 17:06:53 master systemd[1]: Starting mysql server daemon...
Dec 26 17:06:55 master service[99849]: Starting MySQL. SUCCESS!
Dec 26 17:06:55 master systemd[1]: Started mysql server daemon.16.修改数据库密码
[root@master ~]# cat pass
otVyge;=q7eY
[root@master ~]# mysql -uroot -p'otVyge;=q7eY'
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 8
Server version: 8.0.35Copyright (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> alter user root@localhost identified with mysql_native_password by 'Passw0rd@_~';
Query OK, 0 rows affected (0.00 sec)
mysql> quit
Bye
[root@master ~]# mysql -uroot -p'Passw0rd@_~'
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 11
Server version: 8.0.35 MySQL Community Server - GPLCopyright (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> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.01 sec)

3.2 mysql主从配置

3.2.1 确保从数据库与主数据库里的数据一样

为确保从数据库与主数据库里的数据一样,先全备主数据库并还原到从数据库中

//先查看主库有哪些库
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)//再查看从库有哪些库
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)
3.2.2 在主数据库里创建一个同步账号授权给从数据库使用
[root@master ~]# mysql -uroot -pPassw0rd@_~
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 12
Server version: 8.0.35 MySQL Community Server - GPLCopyright (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> create user repl@192.168.116.143 identified with mysql_native_password by 'Passw0rd@_~';
Query OK, 0 rows affected (0.01 sec)mysql> grant replication slave on *.* to repl@192.168.116.143-> ;
Query OK, 0 rows affected (0.00 sec)mysql> flush privileges-> ;
Query OK, 0 rows affected (0.01 sec)//到slave主机登入
[root@slave ~]# mysql -urepl -pPassw0rd@_~ -h192.168.116.140
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 11
Server version: 8.0.35 MySQL Community Server - GPLCopyright (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> 
3.2.3 配置主数据库
[root@master ~]# vim /etc/my.cnf
[root@master ~]# cat /etc/my.cnf
[mysqld]
basedir = /usr/local/mysql
datadir = /opt/data
port = 3306
socket = /tmp/mysql.sock
pid-file = /opt/data/mysql.pid
user = mysql
skip-name-resolvelog-bin = mysql_bin
server-id = 10
[root@master ~]# systemctl restart mysql
[root@master ~]# ss -antl
State              Recv-Q             Send-Q                          Local Address:Port                            Peer Address:Port             Process             
LISTEN             0                  128                                   0.0.0.0:22                                   0.0.0.0:*                                    
LISTEN             0                  70                                          *:33060                                      *:*                                    
LISTEN             0                  151                                         *:3306                                       *:*                                    
LISTEN             0                  128                                      [::]:22                                      [::]:*               //查看主库的状态
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql_bin.000001 |      157 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
3.2.4 配置从数据库
[root@slave ~]# vim /etc/my.cnf
[root@slave ~]# cat /etc/my.cnf
[mysqld]
basedir = /usr/local/mysql
datadir = /opt/data
port = 3306
socket = /tmp/mysql.sock
pid-file = /opt/data/mysql.pid
user = mysql
skip-name-resolverelay-log = mysql_relay_bin
server-id = 20
[root@slave ~]# systemctl restart mysql
[root@slave ~]# ss -antl
State              Recv-Q             Send-Q                          Local Address:Port                            Peer Address:Port             Process             
LISTEN             0                  128                                   0.0.0.0:22                                   0.0.0.0:*                                    
LISTEN             0                  128                                      [::]:22                                      [::]:*                                    
LISTEN             0                  151                                         *:3306                                       *:*                                    
LISTEN             0                  70                                          *:33060                                      *:*                                    //配置并启动主从复制
mysql> change master to-> master_host='192.168.116.140',-> master_user='repl',-> master_password='Passw0rd@_~',-> master_port=3306,-> master_log_file='mysql_bin.000001',-> master_log_pos=157;
Query OK, 0 rows affected, 9 warnings (0.02 sec)mysql> start slave-> ;
Query OK, 0 rows affected, 1 warning (0.01 sec)//查看从服务器状态
mysql> show slave status\G
*************************** 1. row ***************************Slave_IO_State: Waiting for source to send eventMaster_Host: 192.168.116.140Master_User: replMaster_Port: 3306Connect_Retry: 60Master_Log_File: mysql_bin.000001Read_Master_Log_Pos: 157Relay_Log_File: mysql_relay_bin.000002Relay_Log_Pos: 326Relay_Master_Log_File: mysql_bin.000001Slave_IO_Running: YesSlave_SQL_Running: YesReplicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0Last_Error: Skip_Counter: 0Exec_Master_Log_Pos: 157Relay_Log_Space: 536Until_Condition: NoneUntil_Log_File: Until_Log_Pos: 0Master_SSL_Allowed: NoMaster_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: NoLast_IO_Errno: 0Last_IO_Error: Last_SQL_Errno: 0Last_SQL_Error: Replicate_Ignore_Server_Ids: Master_Server_Id: 10Master_UUID: b6998aa8-a3cb-11ee-900f-000c29ed2b10Master_Info_File: mysql.slave_master_infoSQL_Delay: 0SQL_Remaining_Delay: NULLSlave_SQL_Running_State: Replica has read all relay log; waiting for more updatesMaster_Retry_Count: 86400Master_Bind: Last_IO_Error_Timestamp: Last_SQL_Error_Timestamp: Master_SSL_Crl: Master_SSL_Crlpath: Retrieved_Gtid_Set: Executed_Gtid_Set: Auto_Position: 0Replicate_Rewrite_DB: Channel_Name: Master_TLS_Version: Master_public_key_path: Get_master_public_key: 0Network_Namespace: 
1 row in set, 1 warning (0.00 sec)
3.2.5 测试验证

在主服务器创建库并创建表,向表中插入数据:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.01 sec)mysql> create database student;
Query OK, 1 row affected (0.01 sec)mysql> use student;
Database changed
mysql> create table hl(id int not null,name varchar(20));
Query OK, 0 rows affected (0.02 sec)mysql> desc hl;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int         | NO   |     | NULL    |       |
| name  | varchar(20) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.01 sec)
mysql> insert hl(id,name) value(1,'tom'),(2,'jerry');
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0mysql> select * from hl;
+----+-------+
| id | name  |
+----+-------+
|  1 | tom   |
|  2 | jerry |
+----+-------+
2 rows in set (0.00 sec)

在从数据库中查看数据是否同步:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| student            |
| sys                |
+--------------------+
5 rows in set (0.01 sec)mysql> select * from student.hl;
+----+-------+
| id | name  |
+----+-------+
|  1 | tom   |
|  2 | jerry |
+----+-------+
2 rows in set (0.00 sec)

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C语言】双向链表详解

文章目录 关于双向链表双向链表的初始化双向链表的打印双向链表方法调用 - 尾删为例双向链表的查找 - 指定位置之后插入为例双向链表结束 - 链表的销毁小结及整体代码实现 关于双向链表 首先链表有8种基本分法 其中在笔者之前文章种详细介绍的 单链表 是不带头单项不循环链表…

【饿了么笔试题汇总】[全网首发]2024-04-12-饿了么春招笔试题-三语言题解(CPP/Python/Java)

🍭 大家好这里是KK爱Coding ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新饿了么近期的春秋招笔试题汇总~ 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢&#x…

MySQL视图的语法以及限制

语法 创建:create view view_name as select 语句; mysql能够通过创建视图的方式来创建一个虚拟表,它内容由select 语句决定。 并且创建的视图的变化会影响到主表,主表的变化也会影响视图。 删除: drop view view_name; 其实我们能够发现&am…

2023全国青少年信息素养大赛总决赛C++小学组真题

2023 全国青少年信息素养大赛总决赛C小学组真题 第一题 给定一个五位数x,你需要重复做以下操作: 把数的各个数位进行由大到小排序和由小到大排序,得到的最大值和最小值,进行求差后作为新的x。 可以证明,在经过有限次操作后&…

mybatis05:复杂查询:(多对一,一对多)

mybatis05:复杂查询:(多对一,一对多) 文章目录 mybatis05:复杂查询:(多对一,一对多)前言:多对一 : 关联 : 使用associatio…

GPT-5将在6月发布前进行「红队进攻测试」

“GPT-5将在6月发布”的消息刷屏了AI朋友圈。这则消息之所以被无数人相信并转发,是因为已经有不少技术人员在社交平台上晒出了「红队进攻测试」邀请。 基于 GPT系列庞大的用户体量和影响力,OpenAI 将更加重视GPT-5 的安全性,作为GPT-5上市前的…

DVWA靶场的下载与搭建

目录 什么是靶场 DVWA靶场下载 下载地址 安装 什么是靶场 靶场就是人为提供的带有安全漏洞的服务,每一个学习者都可以在本地快速搭建来实操,回溯漏洞的发生原理以及操作方式。DVWA靶场呢就是一个可以通过浏览器访问的拥有可视化页面的web靶场。 DVW…

前端图片详解(最全面、最新)

前言 当我们在做前端性能优化的时候,总是会离不开图片,尤其在首次内容绘制(FCP)和最大内容绘制 (LCP)中,图片显得格外关键,而我发现关于图片格式的文章,一般不全,或者是偏旧。 所以…

Bitmap OOM

老机器Bitmap预读仍然OOM&#xff0c;无奈增加一段&#xff0c;终于不崩溃了。 if (Build.VERSION.SDK_INT < 21)size 2; 完整代码&#xff1a; Bitmap bitmap; try {//Log.e(Thread.currentThread().getStackTrace()[2] "", surl);URL url new URL(surl);…

数据结构--链式栈

一.链式栈的栈顶在哪里? 二.链栈的结构: typedef struct LSNode{ int data; struct LSNode* next; }LSNode ,*PLStack; //链栈的节点.由于栈顶在第一个数据节点,所以不需要top指针 三.链式栈的实现: //初始化LSNode* p (LSNode*)malloc(sizeof(LSNode));assert(p ! NULL)…

Nifi同步过程中报错create_time字段找不到_实际目标表和源表中没有这个字段---大数据之Nifi工作笔记0066

很奇怪的问题,在使用nifi的时候碰到的,这里是用NIFI,把数据从postgresql中同步到mysql中, 首先postgresql中的源表,中是没有create_time这个字段的,但是同步的过程中报错了. 报错的内容是说,目标表中有个create_time字段,这个字段是必填的,但是传过来的flowfile文件中,的数据没…

Kali中间人攻击

中间人攻击 中间人攻击&#xff08;Man-in-the-Middle Attack&#xff0c;简称MITM&#xff09;是一种网络安全攻击&#xff0c;其中攻击者插入自己&#xff08;作为“中间人”&#xff09;在通信的两个端点之间&#xff0c;以窃取或篡改通过的数据。攻击者可以监视通信&#x…

Composer 安装与使用

文章目录 Composer的主要特点&#xff1a;Composer 的安装Windows 平台Linux 平台Mac OS 系统 Composer 的使用require 命令update 命令remove 命令search 命令show 命令 基本约束精确版本范围通配符波浪号 ~折音号 ^ 版本稳定性 Composer 是PHP编程语言的一个依赖管理工具。它…

【R语言从0到精通】-3-R统计分析(列联表、独立性检验、相关性检验、t检验)

上两次教程集中学习了R语言的基本知识&#xff0c;那么我们很多时候使用R语言是进行统计分析&#xff0c;因此对于生物信息学和统计科学来说&#xff0c;R语言提供了简单优雅的方式进行统计分析。教程参考《Rlearning》 3.1 描述性统计分析 3.1.1 载入数据集及summary函数 我…

广州南沙番禺联想SR530服务器主板传感器故障维修

今日分享一例广州市南沙区联想ThinkSystem SR530服务器sensor sysbrd vol故障问题维修案例&#xff1b; 服务器型号是&#xff1a;Lenovo thinksystem sr530 g6服务器 服务器所在位置&#xff1a;广东省广州市南沙区 服务器故障问题&#xff1a;机房异常停电&#xff0c;来电后…

HarmonyOS开发学习:【DevEco Device Tool 安装配置(问题全解)】

本文介绍如何在Windows主机上安装DevEco Device Tool工具。 坑点总结&#xff1a; 国内部分网络环境下&#xff0c;安装npm包可能会很慢或者超时&#xff0c;推荐使用国内npm源&#xff08;如淘宝源、华为源等&#xff09;&#xff1b;serialport这个npm包安装的过程中需要编…

透视晶圆制造黑匣子:RFID赋能智能生产,构建晶圆盒全程精准追溯体系

透视晶圆制造黑匣子&#xff1a;RFID赋能智能生产&#xff0c;构建晶圆盒全程精准追溯体系 应用背景 在全球半导体产业链中&#xff0c;晶圆盒作为承载硅片的重要载体&#xff0c;其生产过程的精细化管理和追溯显得至关重要。近年来&#xff0c;一种名为RFID&#xff08;Radi…

Fast-lio2运行时如何显示轨迹线

修改对应设备的.yaml文件&#xff0c;以velodyne为例&#xff1a; 将 path_en参数改为true即可&#xff0c;运行其他设备&#xff0c;修改对应的参数

mysql面试题 1

为什么要使用数据库 数据保存在内存 优点&#xff1a; 存取速度快缺点&#xff1a; 数据不能永久保存 数据保存在文件 优点&#xff1a; 数据永久保存缺点&#xff1a;1、速度比内存操作慢&#xff0c;频繁的IO操作。2、查询数据不方便 数据保存在数据库 数据永久保存使用SQL语…

跟TED演讲学英文:The inside story of ChatGPT‘s astonishing potential by Greg Brockman

The inside story of ChatGPT’s astonishing potential Link: https://www.ted.com/talks/greg_brockman_the_inside_story_of_chatgpt_s_astonishing_potential Speaker: Greg Brockman Date:April 2023 文章目录 The inside story of ChatGPTs astonishing potentialIntro…