基于mysql8.0.27部署1主2從的MHA集群

目錄

一、mysql概述

1.1、關系型數據庫

1.2、MySQL數據庫

1.3、RDBMS術語

二、mysql的部署

2.1、拉取mysql

2.2、解壓

2.3、 改名

2.4、?指定安裝文件位置

2.5、?創建用戶組

2.6、?修改mysql配置文件

2.7、創建data文件夾

2.8、更改mysql目錄權限

2.9、初始化數據庫

?2.10、查看初始密碼

2.11、?啟動mysql服務

2.12、使用初始密碼進入數據庫,修改密碼

2.13、設置遠程連接

2.14、測試連接

三、mysql主主復制部署

3.1、克隆兩臺服務

3.2、 添加對應主機

3.3、?關閉防火墻以及修改selinux

3.4、 修改倆臺服務器的配置文件

3.5、主服務器

3.6、查看主服務器的日志配置

3.7、從服務器

3.8、從服務器

3.9、主服務器

3.10、在主服務查看?

四、MHA集群部署

添加主機名

4.1、 安裝MHA

4.2、免密

4.3、創建mysql的軟鏈接

4.4、創建用戶

4.5、配置環境變量

4.6、 創建manager的配置文件

4.7、檢查互信

4.8、?檢查主從復制狀態

4.9、開啟MHA-manager

4.10、查看MHA狀態

4.11、 測試HA高可用的自動切換

4.12、 回到主

五、MHA+VIP部署

5.1、修改mha.cnf配置文件

5.2、編寫?master_ip_failover文件

5.3、添加?master_ip_failover的權限

5.4、添加虛擬ip

5.5、 測試狀態檢查

5.6、開啟MHA-manager

5.7、測試

5.8、查看IP

5.9、進入host2,查看ip

5.10、手動轉移

5.10、測試連接

5.11、查看日志


一、mysql概述

1.1、關系型數據庫

關系型數據庫天然就是二維表格,因此存儲在數據表的行和列中。數據表可以彼此關聯協作存儲,也很容易提取數據。

1.2、MySQL數據庫

MySQL是一個關系型數據庫管理系統,由瑞典MySQL AB公司開發,目前屬于Oracle公司。

MySQL可將數據保存在不同的表中,而不是將所有數據放在一個大的倉庫內,從而加快了訪問速度并提高了靈活性。

MySQL 使用了標準的 SQL 語言形式。支持大型的數據庫,可以處理擁有上千萬條記錄的大型數據庫。MySQL 還可用于多種系統中,且支持多種語言。

1.3、RDBMS術語

數據庫:數據庫是一些關聯表的集合。

數據表:表是數據的矩陣。在一個數據庫中的表看起來像一個簡單的電子表格。

列:一列(數據元素)包含了相同的數據,例如郵政編碼的數據。

行:一行(=元組,或者記錄)是一組相關的數據,例如一條用戶訂閱的數據。

亢余:存儲兩倍數據,亢余降低了性能,但是提高了數據的安全性。

主鍵:主鍵是唯一的,一個數據表中只能夠包含一個主鍵,你可以使用主鍵來查詢數據。

外鍵:外鍵用于關聯兩個表。

復合鍵:復合鍵(組合鍵)將多個列作為一個索引鍵,一般用于復合索引。

索引:使用索引可快速訪問數據庫表中的特定信息。索引是對數據庫表中一列或者多列的值進行排序的一種結構。類似于書籍的目錄。

二、mysql的部署

2.1、拉取mysql

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.27-el7-x86_64.tar.gz

2.2、解壓

tar -xvf mysql-8.0.27-el7-x86_64.tar.gz

2.3、 改名

mv mysql-8.0.27-el7-x86_64 mysql

2.4、?指定安裝文件位置

mv mysql /usr/local

2.5、?創建用戶組

groupadd mysql
useradd -r -g mysql mysql
passwd mysql

2.6、?修改mysql配置文件

/etc/my.cnf[mysqld]
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
# server_id = .....
socket = /tmp/mysql.sock
character-set-server = utf8
skip-name-resolve
log-error = /usr/local/mysql/data/error.log
pid-file = /usr/local/mysql/data/mysql.pidsql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

2.7、創建data文件夾

cd /usr/local/mysql
mkdir data

2.8、更改mysql目錄權限

chown -R mysql .
chgrp -R mysql .

2.9、初始化數據庫

./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

?2.10、查看初始密碼

vim /usr/local/mysql/data/error.log

2.11、?啟動mysql服務

./support-files/mysql.server start

2.12、使用初始密碼進入數據庫,修改密碼

./bin/mysql -uroot -palter user 'root'@'localhost' identified by 'Root123456';

2.13、設置遠程連接

mysql> create user 'root'@'%' identified with mysql_native_password by 'Root123456';
Query OK, 0 rows affected (0.01 sec)mysql> grant all on *.* to 'root'@'%';
Query OK, 0 rows affected (0.00 sec)mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

2.14、測試連接

systemctl stop firewalld.service 
firewall-cmd --state

三、mysql主主復制部署

3.1、克隆兩臺服務

?刪除每臺服務器的server-uuid,并重新啟動mysql,生成新的uuid

3.2、 添加對應主機

vim /etc/hosts192.168.157.80 host1
192.168.157.81 host2
192.168.157.82 host3

3.3、?關閉防火墻以及修改selinux

# 關閉防火墻
systemctl  stop firewalld
systemctl  disable firewalld   # 關閉自啟動# 修改selinux
vim  /etc/sysconfig/selinux
SELINUX=disabled  #  設置為disabled

3.4、 修改倆臺服務器的配置文件

主從服務器/etc/my.cnf添加以下三行server-id=200
log-bin=mysql-bin
binlog_checksum=nonelog-bin=mysql-bin ?//將mysql二進制日志取名為mysql-bin
binlog_checksum=none //不對二進制檢查
server-id=200 //為服務器設置一個獨一無二的id便于區分,建議使用ip地址的最后一位充當server-id

3.5、主服務器

use mysql;
CREATE USER 'slave'@'%' IDENTIFIED BY 'abc123';
grant REPLICATION SLAVE on *.* to 'slave'@'%';
alter user 'slave'@'%' IDENTIFIED WITH mysql_native_password BY 'abc123';
flush privileges;

3.6、查看主服務器的日志配置

show master status;

3.7、從服務器

根據主服務器的日志配置配置從服務器
change master to master_host='192.168.157.80',master_user='slave',master_password='abc123', master_log_file='mysql-bin.000001',master_log_pos=1124;啟動從服務器slave :start slave;
查看是否配置成功:show slave status;

3.8、從服務器

從服務器
use mysql;
CREATE USER 'slave1'@'%' IDENTIFIED BY 'abc123';
grant REPLICATION SLAVE on *.* to 'slave1'@'%';
alter user 'slave1'@'%' IDENTIFIED WITH mysql_native_password BY 'abc123';
flush privileges;查看從服務器的日志配置:show master status;

3.9、主服務器

根據從服務器的日志配置主服務器
change master to master_host='192.168.157.81',master_user='slave1',master_password='abc123', master_log_file='mysql-bin.000001',master_log_pos=1130;start slave;

3.10、在主服務查看?

show slave status \G;

四、MHA集群部署

192.168.157.80host1主庫
192.168.157.81host2備選主庫
192.168.157.82host3從庫(MHA管理節點)

添加主機名

配置MHA集群不用搞主主復制

vim /etc/hosts192.168.157.80 host1
192.168.157.81 host2
192.168.157.82 host3

4.1、 安裝MHA

- 所有節點安裝node軟件依賴包和node軟件yum -y install perl-DBD-MySQL 
rpm -ivh mha4mysql-node-0.58-0.el7.centos.noarch.rpm- 在manager安裝manager軟件依賴包和manager軟件
yum install -y perl-Config-Tiny 
yum install -y epel-release 
yum install -y perl-Log-Dispatch 
yum install -y perl-Parallel-ForkManager 
yum install -y perl-Time-HiResrpm -ivh mha4mysql-manager-0.58-0.el7.centos.noarch.rpm

4.2、免密

分發ssh密鑰
在 所有服務器(包括 host1, host2, host3)上執行以下操作:# 生成各自的密鑰對(如果沒有)
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa -N ""# 將所有服務器的公鑰收集到 host1
for host in 192.168.157.80 192.168.157.81 192.168.157.82; doecho "收集 $host 的公鑰:"ssh root@$host "cat ~/.ssh/id_rsa.pub" >> ~/.ssh/all_servers.pub
done# 在 host1 上,將所有公鑰添加到 authorized_keys
cat ~/.ssh/all_servers.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys# 將 host1 的 authorized_keys 復制回所有服務器
for host in 192.168.157.80 192.168.157.81 192.168.157.82; doscp ~/.ssh/authorized_keys root@$host:~/.ssh/
done檢查 host1 的 SSH 配置
確保 host1 的 /etc/ssh/sshd_config 配置正確:PermitRootLogin yes
PubkeyAuthentication yes
PasswordAuthentication no  # 可選,取決于你的安全策略
AuthorizedKeysFile .ssh/authorized_keys重啟ssh服務:
systemctl restart sshd手動驗證 SSH 連接
在 host2 和 host3 上分別測試到 host1 的 SSH 連接:# 在 host2 上
ssh root@host1# 在 host3 上
ssh root@host1

4.3、創建mysql的軟鏈接

# 在三個主機系統bin目錄創建軟連接(需root權限)
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
ln -s /usr/local/mysql/bin/mysqlbinlog /usr/bin/mysqlbinlog
ln -s /usr/local/mysql/bin/mysqldump /usr/bin/mysqldump

4.4、創建用戶

在host1,host2,host3中cd /usr/local/mysql
./bin/mysql -u root -pCREATE USER 'slave'@'%' IDENTIFIED BY 'abc123';
grant REPLICATION SLAVE on *.* to 'slave'@'%';
alter user 'slave'@'%' IDENTIFIED WITH mysql_native_password BY 'abc123';
flush privileges;

4.5、配置環境變量

在三臺主機上
echo 'export PATH=$PATH:/usr/local/mysql/bin' >> ~/.bashrc
source ~/.bashrc

4.6、 創建manager的配置文件

#創建配置文件目錄、日志目錄
mkdir -p /etc/mha
mkdir -p /var/log/mha/log#編輯mha配置文件 vi /etc/mha/mha.cnf
[server default]
manager_log=/var/log/mha/log/manager       # MHA 管理器的日志文件路徑
manager_workdir=/var/log/mha/log           # MHA 管理器的工作目錄
master_binlog_dir=/usr/local/mysql/data    # 主庫二進制日志所在目錄
user=root                                  # MHA 連接 MySQL 的用戶名
password=root                              # MHA 連接 MySQL 的密碼
ping_interval=2                            # 檢查服務器狀態的間隔時間(秒)
repl_user=slave                            # 復制用戶(用于從庫同步)
repl_password=abc123                       # 復制用戶的密碼
ssh_user=root                              # SSH 連接用戶(用于遠程操作服務器)
[server1]
hostname=host1                             # 服務器 1 的主機名或 IP
port=3306                                  # 服務器 1 的 MySQL 端口
[server2]
hostname=host2                             # 服務器 2 的主機名或 IP
port=3306                                  # 服務器 2 的 MySQL 端口
candidate_master=1                         # 可提升為主庫的候選從庫,搞了多主模式可加入
check_repl_delay=0                         # 忽略復制延遲檢查(根據需求設置)
[server3]
hostname=host3                             # 服務器 3 的主機名或 IP
port=3306                                  # 服務器 3 的 MySQL 端口

4.7、檢查互信

masterha_check_ssh --conf=/etc/mha/mha.cnf

4.8、?檢查主從復制狀態

masterha_check_repl --conf=/etc/mha/mha.cnf

?注:出現問題

1、需要注釋三臺主機中my.cnf中 [client]下的字符配置;

2、配置三臺主機中MySQL的環境變量;

3、如果之前測試過故障自動轉移,需要將/var/log/mha/log文件夾下的對應的 complete文件刪除

以上處理完成之后再進行檢測集群是否健康。

4.9、開啟MHA-manager

nohup masterha_manager --conf=/etc/mha/mha.cnf > /var/log/mha/log/manager.log < /dev/null 2>&1 &

4.10、查看MHA狀態

masterha_check_status --conf=/etc/mha/mha.cnf

4.11、 測試HA高可用的自動切換

在host1上,執行shutdown操作
mysqladmin -uroot -proot shutdownMHA會自動進行主從切換。切換完成后,MHA進程會自動停止運行。在host2和host3上觀察,執行下面的語句:
show slave status\G;

host1:?

host2:

host3:

4.12、 回到主

在新主庫(host3)上
STOP SLAVE; 在host2上
STOP SLAVE; 在舊主庫(host1)上
STOP SLAVE; 
RESET SLAVE ALL;  -- 清除原復制配置在host1上
SHOW MASTER STATUS;在host2,host3上
change master to master_host='192.168.157.80',master_user='slave',master_password='abc123', master_log_file='mysql-bin.000002',master_log_pos=152;start slave;SHOW SLAVE STATUS\G;

五、MHA+VIP部署

5.1、修改mha.cnf配置文件

vim /etc/mha/mha.cnf在server-default下添加如下代碼
master_ip_failover_script=/etc/mha/master_ip_failover

5.2、編寫?master_ip_failover文件

vim /etc/mha/master_ip_failover#!/bin/bash
# 完整的 MHA VIP 管理腳本(支持自動切換 VIP)
# 配置參數
VIP="192.168.157.88"          # VIP 地址
NETMASK="24"                  # 子網掩碼
INTERFACE="ens33"             # 網絡接口(修正拼寫錯誤:end33 → ens33)
ARPING_COUNT=3                # ARP 廣播次數
LOG_FILE="/var/log/mha/vip_scripts.log"
SSH_OPTS="-o StrictHostKeyChecking=no -o ConnectTimeout=10"  # SSH 選項# 解析參數
command=""
ssh_user=""
orig_master_host=""
orig_master_ip=""
orig_master_port=""
new_master_host=""
new_master_ip=""
new_master_port=""while [[ $# -gt 0 ]]; docase "$1" in--command=*)command="${1#*=}"shift;;--ssh_user=*)ssh_user="${1#*=}"shift;;--orig_master_host=*)orig_master_host="${1#*=}"shift;;--orig_master_ip=*)orig_master_ip="${1#*=}"shift;;--orig_master_port=*)orig_master_port="${1#*=}"shift;;--new_master_host=*)new_master_host="${1#*=}"shift;;--new_master_ip=*)new_master_ip="${1#*=}"shift;;--new_master_port=*)new_master_port="${1#*=}"shift;;*)shift;;esac
done# 日志函數
log() {local level=$1local message=$2local timestamp=$(date '+%Y-%m-%d %H:%M:%S')echo "$timestamp [$level] $message" >> "$LOG_FILE"# 同時輸出到控制臺(便于調試)echo -e "[$timestamp] [$level] $message"
}# 執行 SSH 命令并返回結果
ssh_exec() {local host=$1local cmd=$2log "INFO" "在 $host 執行命令: $cmd"# 執行 SSH 命令并捕獲輸出和退出碼local output=$(ssh $SSH_OPTS "$ssh_user@$host" "$cmd" 2>&1)local exit_code=$?if [ $exit_code -ne 0 ]; thenlog "ERROR" "SSH 命令執行失敗($host): $output"elselog "INFO" "SSH 命令執行成功($host): $output"fireturn $exit_code
}# 添加 VIP 到新主庫
add_vip() {local host=$1log "INFO" "開始在新主庫 $host 添加 VIP: $VIP/$NETMASK"# 1. 檢查網絡接口是否存在local check_interface="ip link show $INTERFACE > /dev/null 2>&1"if ! ssh_exec "$host" "$check_interface"; thenlog "ERROR" "網絡接口 $INTERFACE 在 $host 上不存在"return 1fi# 2. 添加 VIPlocal add_cmd="ip addr add $VIP/$NETMASK dev $INTERFACE label ${INTERFACE}:0"if ! ssh_exec "$host" "$add_cmd"; thenlog "ERROR" "在 $host 上添加 VIP 失敗"return 1fi# 3. 發送 ARP 廣播(更新網絡緩存)local arp_cmd="arping -c $ARPING_COUNT -A -I $INTERFACE $VIP > /dev/null 2>&1"if ! ssh_exec "$host" "$arp_cmd"; thenlog "WARN" "ARP 廣播發送失敗,但 VIP 已添加"filog "INFO" "VIP 已成功添加到 $host"return 0
}# 從原主庫移除 VIP
remove_vip() {local host=$1log "INFO" "開始從原主庫 $host 移除 VIP: $VIP"# 1. 檢查 VIP 是否存在local check_vip="ip addr show $INTERFACE | grep -q '$VIP/$NETMASK'"if ! ssh_exec "$host" "$check_vip"; thenlog "WARN" "VIP $VIP 在 $host 上不存在,跳過移除"return 0fi# 2. 移除 VIPlocal del_cmd="ip addr del $VIP/$NETMASK dev $INTERFACE"if ! ssh_exec "$host" "$del_cmd"; thenlog "ERROR" "從 $host 上移除 VIP 失敗"return 1fi# 3. 發送 ARP 廣播(通知網絡更新)local arp_cmd="arping -c $ARPING_COUNT -A -I $INTERFACE $VIP > /dev/null 2>&1"ssh_exec "$host" "$arp_cmd"log "INFO" "VIP 已成功從 $host 移除"return 0
}# 主邏輯
main() {# 初始化日志目錄mkdir -p "$(dirname "$LOG_FILE")"log "INFO" "===== VIP 管理腳本啟動 ====="log "INFO" "解析到的參數: command=$command, 原主庫=$orig_master_host, 新主庫=$new_master_host"case "$command" in"start")# 新主庫啟動 VIPif [ -z "$new_master_host" ]; thenlog "ERROR" "start 命令缺少新主庫參數"exit 1fiif add_vip "$new_master_host"; thenlog "INFO" "VIP 切換到新主庫 $new_master_host 成功"exit 0elselog "ERROR" "VIP 切換到新主庫 $new_master_host 失敗"exit 1fi;;"stop"|"stopssh")# 從原主庫移除 VIPif [ -z "$orig_master_host" ]; thenlog "ERROR" "stop 命令缺少原主庫參數"exit 1fiif remove_vip "$orig_master_host"; thenlog "INFO" "從原主庫 $orig_master_host 移除 VIP 成功"exit 0elselog "ERROR" "從原主庫 $orig_master_host 移除 VIP 失敗"exit 1fi;;"status")# MHA 狀態檢查(必須返回 0)log "INFO" "腳本狀態正常,支持 VIP 管理"exit 0;;*)log "ERROR" "未知命令: $command(支持的命令: start/stop/stopssh/status)"exit 1;;esac
}# 執行主函數
main "$@"

5.3、添加?master_ip_failover的權限

chmod +x /etc/mha/master_ip_failover

5.4、添加虛擬ip

添加虛擬IP:ifconfig ens33:0 192.168.157.88/24刪除虛擬IP:ip addr del 192.168.157.88/24 dev ens33

5.5、 測試狀態檢查

/etc/mha/master_ip_failover --command=status --ssh_user=root

5.6、開啟MHA-manager

nohup masterha_manager --conf=/etc/mha/mha.cnf > /var/log/mha/log/manager.log < /dev/null 2>&1 &查看MHA狀態
masterha_check_status --conf=/etc/mha/mha.cnf

5.7、測試

在host1上,執行shutdown操作
mysqladmin -uroot -proot shutdown

5.8、查看IP

5.9、進入host2,查看ip

5.10、手動轉移

# 測試狀態檢查(應返回成功)
/etc/mha/master_ip_failover --command=status --ssh_user=root# 測試添加 VIP 到 host2
/etc/mha/master_ip_failover --command=start --ssh_user=root --new_master_host=host2# 測試從 host2 移除 VIP
/etc/mha/master_ip_failover --command=stop --ssh_user=root --orig_master_host=host2

5.10、測試連接

5.11、查看日志

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

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

相關文章

Highcharts 安裝使用教程

一、Highcharts 簡介 Highcharts 是一款使用 JavaScript 編寫的前端數據可視化庫&#xff0c;支持折線圖、柱狀圖、餅圖、面積圖、散點圖等多種圖表類型&#xff0c;特點是渲染性能優秀、交互豐富、兼容性強&#xff0c;適合構建商業圖表、統計報表等。 二、Highcharts 安裝方…

Qt中的坐標系

Qt中的坐標系 1.坐標系概念2.數學坐標系VS計算機坐標系3.Qt坐標系4.像素 &#x1f31f;&#x1f31f;hello&#xff0c;各位讀者大大們你們好呀&#x1f31f;&#x1f31f; &#x1f680;&#x1f680;系列專欄&#xff1a;【Qt的學習】 &#x1f4dd;&#x1f4dd;本篇內容&am…

C++原子類型操作與內存序

C原子類型操作與內存序詳解 這段內容深入介紹了C標準原子類型的操作接口、內存序語義及使用規范。以下是關鍵知識點的分層解析&#xff1a; 一、原子類型的命名規則與類型映射 C提供兩種方式表示原子類型&#xff1a; 模板特化形式&#xff1a;std::atomic<T>別名形式…

互聯網摸魚日報(2025-07-07)

互聯網摸魚日報(2025-07-07) 鈦媒體 一場突如其來的“召回潮”&#xff0c;點燃中國制造的“靈魂拷問” 史上最大外賣補貼戰開打&#xff0c;美團聚攏資源迎戰“巨無霸” 1315億加冕潮汕女首富&#xff0c;“最強打工妹”劍指港股 用14346字&#xff0c;講透上市前必做的10…

七牛云Java開發面試題及參考答案

詳述 Java 方法重載的機制與應用場景 Java 方法重載&#xff08;Method Overloading&#xff09;是面向對象編程中的重要特性&#xff0c;它允許同一個類中存在多個同名但參數列表不同的方法。這種機制為代碼提供了靈活性和可讀性&#xff0c;使得開發者可以用統一的方法名處理…

.net core mvc部署到win10本地的Ubuntu上

將一個 .NET Core MVC 應用部署到 Windows 10 上通過 WSL 安裝的 Ubuntu 環境中&#xff0c;可以分為幾個步驟來完成。以下是詳細的指南&#xff1a;準備工作確保你的Ubuntu環境已安裝.NET SDK&#xff1a;首先&#xff0c;你需要在WSL中的Ubuntu上安裝.NET SDK。可以通過以下命…

機器人VLA模型(Vision-Language-Action)

一、VLA模型的技術架構與核心原理 VLA&#xff08;Vision-Language-Action&#xff09;模型的核心是構建視覺、語言、動作的多模態閉環系統&#xff0c;實現從感知到執行的端到端映射。其技術架構可細分為四個關鍵模塊&#xff1a; 1. 多模態編碼器 視覺編碼器&#xff1a; …

單點登錄SSO的演進和最佳實踐,含springBoot 實現(Java版本)

一、單點登錄&#xff08;SSO&#xff09;概述 單點登錄&#xff08;SSO, Single Sign-On&#xff09;是一種認證機制&#xff0c;允許用戶只需登錄一次&#xff0c;即可訪問多個相互信任的系統或應用&#xff0c;而不需要為每個系統重復登錄。 二、SSO 演進路徑 我們可以從以…

Python----OpenCV(圖像増強——高通濾波(索貝爾算子、沙爾算子、拉普拉斯算子),圖像浮雕與特效處理)

一、 高通濾波 高通濾波是對圖像進行卷積操作&#xff0c;以保留圖像中的快速變化部分&#xff08;如邊緣和細節&#xff09;&#xff0c;同時抑 制低頻分量&#xff08;如大面積平坦區域&#xff09;。 應用場景 邊緣檢測&#xff1a;提取物體輪廓和邊界。特征提取&#xff…

oracle 恢復

RECOVER DATABASE USING BACKUP CONTROLFILE “用備份的控制文件推動數據庫恢復”。-- 檢查控制文件記錄的當前SCN (V$DATABASE) SELECT CURRENT_SCN FROM V$DATABASE; -- 檢查數據文件頭SCN (V$DATAFILE_HEADER) SELECT FILE#, CHECKPOINT_CHANGE# FROM V$DATAFILE_HEADER;-…

京東商品詳情SKU數據采集的難點有哪些?

京東商品詳情 SKU 數據采集過程中&#xff0c;由于平臺的技術防護、數據結構特性及合規性要求&#xff0c;會面臨諸多難點&#xff0c;具體如下&#xff1a;一、反爬蟲機制的限制京東作為大型電商平臺&#xff0c;擁有成熟且嚴格的反爬蟲系統&#xff0c;這是采集時最核心的障礙…

修復手機液晶面板顯性橫向線性不良定位及相關液晶線路激光修復原理

摘要 手機液晶面板顯性橫向線性不良嚴重影響屏幕顯示效果&#xff0c;其產生與液晶線路斷路、短路或信號傳輸異常密切相關。精準定位線性不良區域是修復的關鍵前提&#xff0c;激光修復技術憑借高能量密度與非接觸特性&#xff0c;能夠有效修復相關液晶線路故障。本文分析顯性…

如何解決Spring Boot中@Valid對List校驗失效問題

在Spring Boot應用開發中&#xff0c;我們經常需要對傳入的請求參數進行校驗&#xff0c;以確保數據的合法性和安全性。然而&#xff0c;當我們嘗試對列表&#xff08;List&#xff09;類型的參數進行校驗時&#xff0c;可能會遇到校驗失效的問題。本文將詳細探討這一問題的失效…

云原生環境下部署大語言模型服務:以 DeepSeek 為例的實戰教程

&#x1f4dd;個人主頁&#x1f339;&#xff1a;一ge科研小菜雞-CSDN博客 &#x1f339;&#x1f339;期待您的關注 &#x1f339;&#x1f339; 一、引言 隨著 DeepSeek、Qwen、ChatGLM 等大語言模型&#xff08;LLM&#xff09;的開放與普及&#xff0c;企業將其私有化部署…

【Spring篇08】:理解自動裝配,從spring.factories到.imports剖析

文章目錄1. 自動化裝配的起點&#xff1a;SpringBootApplication2. 自動化裝配的核心機制&#xff1a;EnableAutoConfiguration 和 AutoConfigurationImportSelector3. 自動化配置的注冊方式&#xff1a;spring.factories 與 .imports3.1 早期版本&#xff1a;META-INF/spring.…

前置代理重構網絡訪問的「中轉站」

某跨境電商通過前置代理構建賬號隔離體系&#xff0c;將亞馬遜店鋪關聯風險降低85%&#xff1b;某企業利用前置代理過濾惡意流量&#xff0c;網絡攻擊攔截率提升70%。在復雜的網絡環境中&#xff0c;前置代理作為客戶端與目標服務器之間的「中間樞紐」&#xff0c;正成為跨境訪…

樂鑫代理商飛睿科技,2025年AI智能語音助手市場發展趨勢與樂鑫芯片解決方案分析

一、市場現狀與技術背景進入2025年&#xff0c;AI智能語音助手市場呈現出爆發性增長態勢。全球AI應用訪問量從2024年初的36億次激增至76億次&#xff0c;增幅高達111%&#xff0c;其中語音交互類產品貢獻了顯著份額。在企業市場&#xff0c;語音技術已從“增值服務”轉變為不可…

App爬蟲工具篇-Appium安裝

之前在另外一篇文章App爬蟲工具篇-mitmproxy簡單介紹了利用mitmproxy進行接口攔截來獲取接口數據。但是很多軟件現在都會對相關接口進行加密。如以下我用mitmproxy攔截到接口流量樣例: {"raw_data": "EXMcAezXPq/MRC1m2mJIG/EQLisaahfpjPTj9svrxe6yLI8mZTvW4+…

容器與 Kubernetes 基本概念與架構

文章目錄 1. 典型環境層次結構2. Kubernetes 生態三大類2.1 核心組件2.2 集群管理工具2.3 生態輔助工具2.4 資源管理關系 3. Docker 容器技術與實踐3.1 鏡像拉取加速3.2 認證與登錄3.3 常用命令3.4 存儲掛載方式對比3.5 docker-compose 啟動3.6 容器化應用部署示例 4. kind 快速…

Ajax和Axios的初步學習

Ajax 一、什么是 Ajax&#xff1f; Ajax (Asynchronous JavaScript and XML) 是一種無需重新加載整個網頁的情況下&#xff0c;能夠更新部分網頁的技術。通過在后臺與服務器進行少量數據交換&#xff0c;Ajax 可以使網頁實現異步更新。 主要特性&#xff1a; 異步性 (Asynch…