MySQL的日志和備份

目錄

一. MySQL的日志

1.1 日志的作用

1.2 日志的分類

1.3 事務日志

1.4 錯誤日志

1.5 通用日志

1.6 慢查詢日志?

1.7 二進制備份

二. 備份

2.1 數據備份的重要性

2.2 備份的分類

2.3 MySQL備份的內容

2.4 備份的注意點

2.5 備份的工具

2.6 實戰案例

2.7?mysqldump備份工具

1. 備份表

2. 備份數據庫

3. 備份所有

4. 實戰案例

2.8?xtrabackup工具

1. 安裝

2. 完全備份

3. 增量備份


一. MySQL的日志

1.1 日志的作用

  1. 故障排查:通過日志可以追蹤數據庫操作中的錯誤和異常,幫助快速定位問題。
  2. 性能優化:分析日志可以了解數據庫的性能瓶頸,從而進行優化。
  3. 數據恢復:某些日志類型(如二進制日志)可以用于數據恢復,特別是在數據丟失或損壞的情況下。

1.2 日志的分類

  1. 錯誤日志(Error Log)

    • 描述:記錄 MySQL 服務器啟動、運行和停止過程中的錯誤信息。
    • 用途:主要用于故障排查和錯誤監控。
  2. 查詢日志(General Query Log)

    • 描述:記錄所有客戶端發送到 MySQL 服務器的 SQL 查詢語句。
    • 用途:用于審計和性能分析。
  3. 慢查詢日志(Slow Query Log)

    • 描述:記錄執行時間超過指定閾值的查詢語句。
    • 用途:用于識別和優化執行效率低下的查詢。
  4. 二進制日志(Binary Log)

    • 描述:記錄所有對數據庫進行更改的 SQL 語句(如 INSERT、UPDATE、DELETE)。
    • 用途:用于數據恢復和主從復制。
  5. 中繼日志(Relay Log)

    • 描述:在主從復制中,從服務器記錄從主服務器接收到的二進制日志事件。
    • 用途:用于主從復制的數據同步。
  6. 事務日志(Transaction Log)

    • 描述:記錄事務的開始、提交和回滾操作。
    • 用途:用于確保事務的原子性和持久性
    • 文件名: ib_logfile0, ib_logfile1

1.3 事務日志

事務日志相關的操作

show variables like '%innodb_log%'; #查看事務日志常見返回參數:
innodb_log_file_size:單個日志文件的大小。
innodb_log_files_in_group:日志文件組的數量。
innodb_log_buffer_size:日志緩沖區的大小。
innodb_log_compressed_pages:是否啟用日志頁壓縮。

#通過編輯配置文件調整日志大小
vim  /etc/my.cnf[mysqld]
innodb_log_file_size=503316480
innodb_log_files_in_group=3

事務日志的優化

innodb_flush_log_at_trx_commit,用于控制事務提交時重做日志的刷新策略select @@innodb_flush_log_at_trx_commit; 
#用于查詢當前該參數的設置值。innodb_flush_log_at_trx_commit=0|1|2#=0:事務提交時,日志不會立即寫入磁盤,而是每秒刷新一次。這種設置性能最高,但存在數據丟失的風險(如系統崩潰時)。
#=1:事務提交時,日志會立即寫入磁盤。這種設置最安全,但性能較低。
#=2:事務提交時,日志會寫入操作系統的緩存,但不會立即刷新到磁盤。這種設置介于性能和安全性之間。

事務是操作的集合, 事務提交, 意味著你要把這些操作結果保存到硬盤上。?

1.4 錯誤日志

#查看錯誤日志的路徑
SHOW GLOBAL VARIABLES LIKE 'log_error' ;

#指定錯誤日志的存放位置
vim  /etc/my.cnf
[mysqld]
log_error=/data/log_error/mysql-error.logsystemctl   restart mysqld

#如何查看錯誤日志SHOW VARIABLES LIKE 'log_error';
#看錯誤日志文件路徑tail -f 錯誤日志路徑;

1.5 通用日志

通用日志:記錄對數據庫的通用操作,包括:錯誤的SQL語句

#配置通用日志
vim  /etc/my.cnf
[mysqld]
general_log=ON
#log_output=TABLEsystemctl   restart mysqldcd /var/lib/mysqlls#查看日志
tail -f ubuntu2204.log

?

?

?

將通用日志放入數據庫中

vim  /etc/my.cnflog_output=TABLEsystemctl restart mysql

?

mysql -u rootuse mysql;show tables;生成一張general_log表select * from  mysql.general_log\G

?

還會生成general_log.CSV

1.6 慢查詢日志?

慢查詢日志:記錄執行查詢時長超出指定時長的操作

#開啟慢查詢
vim  /etc/my.cnf
[mysqld]
slow_query_log=ON
long_query_time=5 #慢查詢的閥值
log_queries_not_using_indexes=ON ?
#不使用索引或使用全索引掃描,不論是否達到慢查詢閥值的語句是否記錄日志,默認OFF,即不記錄mysql restart mysql

?

cd /var/lib/mysqlls

?

?

?

1.7 二進制備份

  1. 記錄導致數據改變或潛在導致數據改變的SQL語句

  2. 記錄已提交的日志

  3. 不依賴于存儲引擎類型

?二進制日志記錄三種格式

  1. 基于"語句"記錄:statement,記錄語句,默認模式( MariaDB 10.2.3 版本以下 ),日志量較少

  2. 基于"行"記錄:row,記錄數據,日志量較大,更加安全,建議使用的格式,MySQL8.0默認格式

  3. 混合模式:mixed, 讓系統自行判定該基于哪種方式進行,默認模式( MariaDB 10.2.4及版本以上)

#開啟二進制日志
mkdir - p data/binlog/
chown -R mysql:mysql /data/binlog/vim  /etc/my.cnf
[mysqld]
sercer_id=100
log_bin=/data/binlog/mysql-bin
#指定存放位置systemctl restart mysqllog_bin=/data/binlog/ls

?

?

?

#查看所有二進制日志
show master logs;#查看使用中的二進制文件
show master status;#徹底清空二進制日志
reset  master;

?

?

mysqlbinlog命令用于解析和查看二進制日志文件的內容,將二進制日志文件轉換為可讀的 SQL 語句或事件信息

?mysqlbinlog的備份過程

#查看日志內容
mysqlbinlog binlog.000001#過濾特定時間段/特定位置的日志
mysqlbinlog --start-datetime="2025-05-26 00:00:00" --stop-datetime="2025-05-26 23:59:59" binlog.000001
或
mysqlbinlog --start-position=12345 --stop-position=12456 binlog.000001#導出日志到文件: 將解析后的日志內容導出到文件。
mysqlbinlog binlog.000001 > output.sql#發生誤操作,進行備份
mysql -u root < output.sql

?

例子:

mysqlbinlog binlog.000001

#把binlog.000001備份下來
mysqlbinlog /data/mysql/bimlog.000001 > backup.sql#如果失誤刪除了hellodb
mysql -u root < backup.sql

?

二. 備份

2.1 數據備份的重要性

  1. 數據安全:防止因硬件故障、軟件錯誤或人為操作導致的數據丟失。

  2. 災難恢復:在發生災難性事件(如火災、洪水)時,能夠快速恢復數據。

2.2 備份的分類

  1. 完全備份

    • 描述:備份整個數據庫的所有數據。
    • 優點:恢復簡單,只需一個備份文件。
    • 缺點:占用存儲空間大,備份時間長。
  2. 增量備份

    • 描述:只備份自上次備份以來發生變化的數據。
    • 優點:節省存儲空間,備份速度快。
    • 缺點:恢復過程復雜,需要所有增量備份文件。
  3. 差異備份

    • 描述:備份自上次完全備份以來發生變化的數據。
    • 優點:恢復過程相對簡單,只需完全備份和最新的差異備份。
    • 缺點:占用存儲空間介于完全備份和增量備份之間

增量備份和差異備份又可稱部分備份

部分備份之前,需要完全備份

按照數據可用性和備份時數據庫的運行狀態來分類?

  1. 冷備(Cold Backup)

    • 特點:數據庫完全關閉后進行備份,數據不可用。
    • 優點:操作簡單,備份一致性高。
    • 缺點:備份期間服務中斷。
  2. 溫備(Warm Backup)

    • 特點:數據庫部分功能可用,備份時可能鎖定部分表或數據。
    • 優點:比冷備對服務影響小,一致性較好。
    • 缺點:部分功能受限,備份速度較慢。
  3. 熱備(Hot Backup)

    • 特點:數據庫完全運行,備份時數據可用且無中斷。
    • 優點:服務不受影響,備份效率高。
    • 缺點:實現復雜,可能占用較多資源。

2.3 MySQL備份的內容

  1. 數據庫結構

    • 包括表結構、索引、視圖、存儲過程等元數據信息。
    • 例如:CREATE TABLE語句、ALTER TABLE語句等。
  2. 數據內容

    • 表中存儲的實際數據,即INSERT語句生成的內容。
    • 這是備份的核心部分,確保數據丟失后可以恢復。
  3. 事務日志(如binlog)

    • 記錄數據庫的所有變更操作,用于實現增量備份和恢復。
    • 例如:UPDATEDELETE等操作記錄。
  4. 用戶權限和配置

    • 包括用戶賬戶、權限設置、數據庫配置參數等。
    • 例如:GRANT語句、my.cnf配置文件等。

2.4 備份的注意點

  1. 能容忍最多丟失多少數據

  2. 備份產生的負載

  3. 備份過程的時長

  4. 溫備的持鎖多久

  5. 恢復數據需要在多長時間內完成

  6. 需要備份和恢復哪些數據

2.5 備份的工具

  1. cp, tar等復制歸檔工具:物理備份工具,適用所有存儲引擎;只支持冷備;完全和部分備份

  2. mysqldump:邏輯備份工具,適用所有存儲引擎,對MyISAM存儲引擎進行溫備;支持完全或部分備份;對InnoDB存儲引擎支持熱備,結合binlog的增量備份

  3. xtrabackup:由Percona提供支持對InnoDB做熱備(物理備份)的工具,支持完全備份、增量備份

  4. MariaDB Backup: 從MariaDB 10.1.26開始集成,基于Percona XtraBackup 2.3.8實現

  5. mysqlbackup:熱備份, MySQL Enterprise Edition 組件

  6. mysqlhotcopy:PERL 語言實現,幾乎冷備,僅適用于MyISAM存儲引擎,使用LOCK TABLES、FLUSH TABLES和cp或scp來快速備份數據庫

2.6 實戰案例

實驗目標:數據庫冷備份和還原

實驗工具:cp, tar等復制歸檔工具

準備工作:

兩臺下載了同一版本MySQL的虛擬機
IP地址分別是:
Ubuntu=192.168.52.105
Ubuntu1=192.168.52.31將hellodb文件分別下載到虛擬機上,并輸入數據庫中
mysql -u root < hellodb_innodb.sql

實驗步驟:

#在Ubuntu1上模擬發送事故,誤刪除了數據庫
cd /var/lib/mysql
rm -rf *#在Ubuntu上進行冷備份操作
systemctl stop mysql
cd /var/lib/mysql
tar zcvf all.tar.gz *
scp all.tar.gz  192.168.52.31:/opt#在Ubuntu1上解壓
cd /var/lib/mysql
tar xf /opt/all.tar.gz
chown mysql:mysql /var/lib/mysql -R#在Ubuntu1上查看是否備份成功
systemctl start mysql
mysql -u root
show database;

?

2.7?mysqldump備份工具

1. 備份表

mysqldump -u root hellodb students > stu.sql

use hellodbdrop table students;

source /root/stu.sql

?

注意:因為備份表的時候不包含數據庫創建語句,需要先切換到目標數據庫。例如本實驗就需要先use hellodb.

2. 備份數據庫

mysqldump  -B  hellodb > hb.sqdrop database hellodb;source /root/hb.sq

?

注意:

關于 mysqldump -uroot hellodb > hb.sql 和 mysqldump -B hellodb > hb.sql 的區別mysqldump -uroot hellodb > hb.sql
僅備份 hellodb 數據庫的表結構和數據
不包含創建數據庫的語句mysqldump -B hellodb > hb.sql
備份 hellodb 數據庫的表結構和數據
包含創建數據庫的語句所以:
使用 mysqldump -uroot hellodb > hb.sql 備份:
恢復時需要先執行 create database hellodb; 和 use hellodb;
然后執行 source /root/hb.sql使用 mysqldump -B hellodb > hb.sql 備份:
直接執行source /root/hb.sql即可恢復

?以下是使用mysqldump -uroot hellodb > hb.sql 進行備份(了解)

mysqldump -uroot hellodb > hb.sqlmysql -u rootdrop database hellodb;create database hellodb;use hellodb;source /root/hb.sql

?

3. 備份所有

#有密碼
mysqldump -uroot -p 密碼 -A  -F  --single-transaction --master-data=1  > /opt/all.sql
#沒有密碼
mysqldump -uroot  -A  -F  --single-transaction --master-data=1  > /opt/all.sql

注意:

使用 mysqldumpxtrabackup 等工具進行備份時,備份節點的時間點與真正節點的時間點可能會有微小差異。

#查看現在的操作節點
mysql -u root SHOW MASTER STATUS;

?

?可以發現,備份節點的時間點與真正節點的時間點可能會有微小差異。

?

4. 實戰案例

每天2:30做完全備份,早上10:00誤刪除了表students,10:10才發現故障,現需要將數據庫還原到10:10的狀態,且恢復被刪除的students表4

思路:

先恢復 完全備份 到2:30

把二進制日志中的 drop students 語句刪除即可

#執行全備
cd /opt
mysqldump -uroot -A -F --single-transaction --source-data=2 > /opt/all.sql#完全備份后數據更新
mysql -uroot
use hellodb
insert students (name,age,gender) values('rose',20,'f');
insert students (name,age,gender) values('jack',20,'f');#10:00誤刪除了一個students的表
drop table students;#后續其余的表繼續更新
insert teachers (name,age,gender)values('test',30,'M');
insert teachers (name,age,gender)values('test1',30,'M');#####10點10分發現進行還原
#停止數據庫訪問
systemctl stop mysql#從完全備份中,找到二進制位置
grep '\-\- CHANGE MASTER TO'  /opt/all.sql#備份  完全備份后的二進制日志
mysqlbinlog --start-position=157 binlog.000005 > /opt/inc.sql#刪除 刪表的那一行
sed   -n   '/^DROP TABLE/p'  /opt/inc.sql   #先測試下
sed -i.bak '/^DROP TABLE/d'  /opt/inc.sql systemctl start mysql
mysql -u root
source /opt/all.sql
source /opt/inc.sql#驗證實驗結果
show databases
use hellodb;
select * from students;
select * from teachers;

補充:一個用于備份MySQL數據庫的Shell腳本命令?

for db in `mysql -uroot -e 'show databases'|grep -Ev '^(Database|information_schema|performance_schema)$'`;do mysqldump -B $db | gzip > /backup/$db.sql.gz;donecd /backupgzip -d hellodb.sql.gz

?

2.8?xtrabackup工具

1. 安裝

#在centos安裝
yum install epel-release -yyum install percona-xtrabackup   -y#在Ubuntu安裝
apt updateapt install curl -ycurl -O https://repo.percona.com/apt/percona-release_latest.generic_all.debapt install gnupg2 lsb-release ./percona-release_latest.generic_all.deb -ypercona-release setup pxb-80apt install percona-xtrabackup-80 -y

2. 完全備份

#準備工作ubuntu和Ubuntu1都要做
#下載hellodb
mysql -u root < hellodb_innodb.sql#新建文件夾
mkdir /backup#在原主機做完全備份到/backup
xtrabackup -uroot  --datadir=/var/lib/mysql    --backup --target-dir=/backup/base#拷貝到目標主機
scp -r /backup/ ? 目標主機:/#在目標主機Ubuntu1上還原,讓目標主機出現誤刪除操作
drop database hellodb;#注意:恢復主機MySQL服務停止,并且數據目錄為空
systemctl stop mysql
cd /var/lib/mysql
rm -rf *#1)預準備:確保數據一致,提交完成的事務,回滾未完成的事務
xtrabackup --prepare --target-dir=/backup/base#2)復制到數據庫目錄
#注意:數據庫目錄必須為空,否則MySQL服務不能啟動
xtrabackup   --datadir=/var/lib/mysql    --copy-back  --target-dir=/backup/basecd /var/lib/mysql
chown -R mysql:mysql /var/lib/mysqlsystemctl  start  mysqlmysql -u root
use hellodbselect * from students;

?

?

?

?

?

3. 增量備份

#在需要恢復的主機Ubuntu1上
drop database hellodb;systemctl stop mysql#在Ubuntu上先完備
mkdir /backup/
xtrabackup -uroot  --datadir=/var/lib/mysql    --backup --target-dir=/backup/base#第一次修改數據
mysql  -uroot  -e   "insert hellodb.students (name,age,gender) values('rose',20,'f');"#第一次增量備份
xtrabackup -uroot   --datadir=/var/lib/mysql   --backup --target-dir=/backup/inc1   --incremental-basedir=/backup/base#第二次修改數據
mysql  -uroot  -e     "insert hellodb.students (name,age,gender) values('tony',20,'f');"#第二次增量備份
xtrabackup -uroot --datadir=/var/lib/mysql  --backup --target-dir=/backup/inc2 --incremental-basedir=/backup/inc1#觀察目錄文件的大小
du -sh /backup/*scp -r /backup/*      目標主機:/backup/#在Ubuntu1上
du -sh /backup/*

?

?

?

?

?

?

#在Ubuntu1上還原
#預準備完成備份,此選項--apply-log-only 阻止回滾未完成的事務
xtrabackup --prepare --apply-log-only --target-dir=/backup/base
du -sh /backup/*#合并第1次增量備份到完全備份
xtrabackup --prepare --apply-log-only --target-dir=/backup/base --incremental-dir=/backup/inc1#合并第2次增量備份到完全備份:最后一次還原不需要加選項--apply-log-only
xtrabackup --prepare --target-dir=/backup/base --incremental-dir=/backup/inc2
du -sh /backup/*#復制到數據庫目錄,注意數據庫目錄必須為空,MySQL服務不能啟動
cd /var/lib/mysql
rm -rf *xtrabackup --prepare --target-dir=/backup/base
#準備備份目錄
xtrabackup --datadir=/var/lib/mysql --copy-back --target-dir=/backup/basechown -R mysql:mysql /var/lib/mysqlsystemctl  start   mysqlshow databases;use hellodb;show tables;select * from students;

?

?

?

?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/84593.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/84593.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/84593.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

前端性能優化:如何讓網頁加載更快?

摘要 想象一下&#xff0c;滿心期待點開一個網頁&#xff0c;卻等了十幾秒還卡在加載界面&#xff0c;你是不是瞬間就想關掉走人&#xff1f;這可不是個別用戶的 “急性子”&#xff0c;數據顯示&#xff0c;網頁每多延遲 1 秒&#xff0c;用戶流失率可能增加 11%&#xff01;…

[論文閱讀]Prompt Injection attack against LLM-integrated Applications

Prompt Injection attack against LLM-integrated Applications [2306.05499] Prompt Injection attack against LLM-integrated Applications 傳統提示注入攻擊效果差&#xff0c;主要原因在于&#xff1a; 不同的應用對待用戶的輸入內容不同&#xff0c;有的將其視為問題&a…

微信小程序進階第2篇__事件類型_冒泡_非冒泡

在小程序中&#xff0c; 事件分為兩種類型&#xff1a; 冒泡事件&#xff0c; 當一個組件上的事件被觸發后&#xff0c;該事件會向父節點傳遞非冒泡事件&#xff0c; 當一個組件上的事件被觸發后&#xff0c; 該事件不會向父節點傳遞。 一 冒泡事件 tap&#xff0c; touchst…

[免費]SpringBoot+Vue在線教育(在線學習)系統(高級版)【論文+源碼+SQL腳本】

大家好&#xff0c;我是java1234_小鋒老師&#xff0c;看到一個不錯的SpringBootVue在線教育(在線學習)系統(高級版)【論文源碼SQL腳本】&#xff0c;分享下哈。 項目視頻演示 【免費】SpringBootVue在線教育(在線學習)系統(高級版) Java畢業設計_嗶哩嗶哩_bilibili 項目介紹…

TypeScript 針對 iOS 不支持 JIT 的優化策略總結

# **TypeScript 針對 iOS 不支持 JIT 的優化策略總結** 由于 iOS 的 **JavaScriptCore (JSC)** 引擎 **禁用 JIT&#xff08;Just-In-Time 編譯&#xff09;**&#xff0c;JavaScript 在 iOS 上的執行性能較差&#xff0c;尤其是涉及動態代碼時。 **TypeScript&#xff08;T…

項目部署一次記錄

鏈路&#xff1a;&#xff08;用戶&#xff09;客戶端 → Nginx:192.168.138.100→ Tomcat &#xff08;程序&#xff09;:192.168.138.101→ MySQL/Redis 打開數據庫&#xff1a;systemctl start mysqld 重啟網絡&#xff1a; systemctl restart NetworkManager 關閉防火墻&am…

C 語言學習筆記

文章目錄 程序設計入門 --- C 語言第一周 程序設計與 C 語言1 計算機與編程語言&#xff1a;計算機怎么做事情的&#xff0c;編程語言是什么&#x1f4d2; 1.1 計算機的普遍應用 —— 離了它&#xff0c;現代人可能不會“活”了**&#x1f310; 科學計算&#xff1a;計算機的“…

服務器修改/home的掛載路徑

寫在前面&#xff1a;前段時間新裝了一臺服務器&#xff0c;/home目錄原本是掛在在系統盤/dev/sda4的分區下&#xff0c;但是系統盤的空間比較小&#xff0c;為了保證后續使用起來&#xff0c;不會遇到磁盤很快就占滿的情況&#xff0c;現在需要將 /home 獨立出來&#xff0c;掛…

刷機維修進階教程-----沒有開啟usb調試 如何在鎖定機型的撥號界面特殊手段來開啟ADB

有時候我們會遇到一些機型被屏幕鎖 賬號鎖等鎖定。無法進入系統界面。也沒有開啟usb調試的情況下如何通過一些操作來開啟adb調試。然后通過adb指令來禁用對應的app順利進入系統。以此來操作保數據等操作. 通過博文了解?????? 1??????----了解一些品牌機型鎖定狀態…

虛擬文件(VFS)

核心知識點&#xff1a;虛擬文件系統&#xff08;VFS&#xff09; 1. 通俗易懂的解釋 想象一下你家里的冰箱。你把食物放進去&#xff0c;不用管它是放在塑料盒里、玻璃罐里還是直接用保鮮膜包著&#xff0c;你只需要知道它在冰箱的哪個位置&#xff08;比如“蔬菜抽屜里”&a…

前后端聯調實戰指南:Axios攔截器、CORS與JWT身份驗證全解析

前言 在現代Web開發中&#xff0c;前后端分離架構已成為主流&#xff0c;而前后端聯調則是開發過程中不可避免的關鍵環節。本文將深入探討前后端聯調中的三大核心技術&#xff1a;Axios攔截器的靈活運用、CORS跨域問題的全面解決方案以及JWT身份驗證的安全實現。通過本文&…

Postman基礎操作

1.Postman是什么&#xff1f; Postman是接口測試的工具&#xff0c;簡單來說它能模擬瀏覽器對服務器的某個接口發起請求并接收響應數據。 1.1 Postman工作原理 2.Postman發送請求 2.1 發送GET請求 我們知道GET請求是沒用請求體的&#xff0c;所以我們需要將請求參數寫在Param…

Elasticsearch Synthetic _source

_source 字段包含索引時傳入的原始 JSON 文檔體。_source 字段本身不被索引&#xff08;因此不可搜索&#xff09;&#xff0c;但會被存儲&#xff0c;以便在執行獲取請求&#xff08;如 get 或 search&#xff09;時返回。 如果磁盤使用很重要&#xff0c;可以考慮以下選項&a…

Vue3 + Element Plus 實現用戶管理模塊

本文介紹一個使用 Vue3 Element Plus 實現的用戶與小組管理模塊&#xff0c;支持用戶的增刪改查&#xff08;CRUD&#xff09;和分頁管理&#xff0c;以及小組的新增和刪除功能&#xff0c;適用于管理后臺系統中的用戶權限管理場景。 一、項目簡介 該模塊具備以下功能&#…

Python應用“面向對象”小練習

大家好!面向對象編程是一種以 “對象” 為核心的編程思想。對象可以看作是具有特定屬性和行為的實體。例如&#xff0c;一個學生可以是一個對象&#xff0c;他的屬性包括姓名和年齡&#xff0c;行為可以是打招呼。? 代碼呈現: # 定義類和對象 class Student:def __init__(sel…

線性回歸原理推導與應用(八):邏輯回歸二分類乳腺癌數據分類

乳腺癌數據是sklearn中自帶的數據集&#xff0c;需要通過相關特征對是否患有乳腺癌進行分類。 數據清洗與建模 首先加載相關庫和相關數據 from sklearn.datasets import load_breast_cancer from sklearn.linear_model import LogisticRegression import numpy as np import…

nginx的一些配置的意思

1.用這個端口可以訪問到nginx 2.工作進程&#xff0c;設置成和cpu核心數一樣即可 3.每個工作進程的最大網絡連接數。 4.主機名稱 設置反向代理時&#xff0c;把server_name設置成ip。 5.反向代理進行轉發&#xff0c;localhost指的是nginx所在的機器。 關鍵字proxy_pass。 …

SID103S/D/Q-300nA, 軌至軌, CMOS 運算放大器替代SGM8141

概述 SID103系列產品是專注于超低功耗、軌至軌、CMOS運算放大器&#xff0c;最低工作電壓可以支持到1.4V&#xff0c;并且工作時每個通道僅消耗300nA的電流。特別適合穿戴式、獨立式等對功耗敏感的電池供電場景。 SID103系列產品擁有5kHz的增益帶寬積&#xff0c;外接500pF電…

十六進制字符轉十進制算法

十六進制與十進制對照 十六進制十進制00112233445566778899A10B11C12D13E14F15 十六進制與十進制區別 十六進制是滿16進1&#xff0c;十進制是滿10進1&#xff0c;這里要注意下區別&#xff0c;16進制的字符里面為什么是0-9沒有10&#xff0c;這里面進了一位&#xff0c;表示…

微軟技術賦能:解鎖開發、交互與數據潛力,共探未來創新路

在微軟 Build 2025 大會以及創想未來峰會上&#xff0c;微軟展示的一系列前沿技術與創新應用&#xff0c;不僅展現了其在科技領域的深厚底蘊與前瞻視野&#xff0c;更為開發者和企業帶來了前所未有的機遇與變革動力。 領馭科技作為微軟中國南區核心合作伙伴及 HKCSP 1T 首批授…