最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL mgr搭建的實現(xiàn)步驟

 更新時間:2025年11月16日 11:11:13   作者:皮皮 Y  
本文主要介紹了MySQL的主從復(fù)制技術(shù)架構(gòu),包括傳統(tǒng)主從復(fù)制和半同步復(fù)制,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

1. 傳統(tǒng)主從復(fù)制技術(shù)架構(gòu)

傳統(tǒng)主從復(fù)制的方式是在master節(jié)點上執(zhí)行數(shù)據(jù)更新事務(wù),而后記錄這些事務(wù)到binlog中,再將binlog發(fā)送到slave節(jié)點轉(zhuǎn)儲成relay log,在slave節(jié)點上再有單獨的線程讀取這些relay log然后重新執(zhí)行或應(yīng)用這些事務(wù),它是shared-nothing的,每個節(jié)點都有一份完整的數(shù)據(jù)副本,其技術(shù)流程圖如下所示:

  • 傳統(tǒng)主從復(fù)制技術(shù)架構(gòu)圖

MySQL還提供了半同步復(fù)制,這是在傳統(tǒng)主從復(fù)制的基礎(chǔ)上增加了一個同步的步驟,master節(jié)點上提交事務(wù)前,要先等到slave節(jié)點確認(rèn)收到事務(wù)信息才可以(所以前文才說當(dāng)slave節(jié)點響應(yīng)慢時會影響master節(jié)點的事務(wù)提交),其技術(shù)流程圖如下所示:

  • 半同步復(fù)制技術(shù)架構(gòu)圖

2. MGR組復(fù)制技術(shù)架構(gòu)

MGR也是shared-nothing的,每個節(jié)點都有一份完整的數(shù)據(jù)副本,MGR可以做到在任何節(jié)點、任何時間都能執(zhí)行讀寫事務(wù)(不含只讀事務(wù)),不過讀寫事務(wù)要被整個復(fù)制組確認(rèn)后才能提交。如果是只讀事務(wù)則沒有這個限制,任何節(jié)點都可以發(fā)起及提交。

當(dāng)讀寫事務(wù)準(zhǔn)備提交前,它會向復(fù)制組發(fā)出一個原子廣播,內(nèi)容包括:該事務(wù)修改的數(shù)據(jù),及其所對應(yīng)的writeset(例如,一個執(zhí)行 UPDATE user SET age=25 WHERE id=1 的事務(wù),其 WriteSet 可能記錄為:{ "database": "test", "table": "user", "primary_key": "id=1" })。復(fù)制組中所有節(jié)點要么接收該事務(wù),要么都不接收。如果組中所有節(jié)點都接收該事務(wù)消息,那么它們都會按照與之前發(fā)送事務(wù)的相同順序收到該廣播消息。因此,所有組成員都以相同的順序接收事務(wù)的寫集,并為事務(wù)建立全局順序。

在多個節(jié)點上并行執(zhí)行的事務(wù)是可能產(chǎn)生沖突的,這時候就需要對比判斷兩個并行事務(wù)的writeset來確認(rèn),這個過程稱為事務(wù)認(rèn)證,也叫做沖突檢測。事務(wù)沖突檢測是行級別的,也就是說兩個并行的事務(wù)更新同一行時,則視為產(chǎn)生沖突。這時的做法是全局順序在前面的事務(wù)可以成功,所有節(jié)點都提交該事務(wù)。而全局順序在后面的事務(wù)會失敗回滾,各節(jié)點會刪除該事務(wù)。這實際上是個分布式的誰先提交誰先贏得事務(wù)的規(guī)則。建議:如果經(jīng)常發(fā)生節(jié)點間的事務(wù)沖突,那最好將這些事務(wù)放在同一個節(jié)點上執(zhí)行,這樣它們在本地事務(wù)并發(fā)控制協(xié)調(diào)下可能都可以提交成功,而不至于由于MGR的沖突檢測而導(dǎo)致某個事務(wù)總是被回滾。

對于正在應(yīng)用或外化的事務(wù),MGR允許它們不一定按照原有順序執(zhí)行,只要不破壞事務(wù)的一致性和有效性即可。MGR默認(rèn)要求是最終一致性,也就是說當(dāng)所有事務(wù)都應(yīng)用完畢后,所有節(jié)點的數(shù)據(jù)是一致的。當(dāng)流量巨大時,事務(wù)可能會被外化而導(dǎo)致順序輕微不一致。例如在多主模式下,一個本地事務(wù)在通過認(rèn)證后會被立即外化,盡管此時可能還有個有這更早全局順序的遠程事務(wù)還沒被應(yīng)用,只要MGR的認(rèn)證線程認(rèn)為這個事務(wù)不會產(chǎn)生沖突即可。在單主模式下,在Primary節(jié)點上的本地并發(fā)事務(wù),在不產(chǎn)生沖突的情況下,其提交和外化的順序可能和該事物的全局事務(wù)順序有輕微不一致。在Secondary節(jié)點上,由于沒有寫事務(wù),因此它們的事務(wù)順序和全局事務(wù)順序是一致的。

下圖描述了MGR的組復(fù)制協(xié)議,可以看到和傳統(tǒng)主從復(fù)制(及半同步復(fù)制)的一些差異。為了簡單起見,圖中少了共識算法和Paxos相關(guān)的信息:

  • MGR技術(shù)架構(gòu)圖

Paxos 協(xié)議

在 MySQL Group Replication(MGR)中,共識算法基于 Paxos 協(xié)議,主要用于確保集群中各節(jié)點在事務(wù)提交等操作上達成一致,其工作過程如下:

事務(wù)提議與廣播

  • 當(dāng)一個節(jié)點上有事務(wù)要執(zhí)行時,該事務(wù)在本地執(zhí)行后,節(jié)點會將事務(wù)信息,如 WriteSet 等,通過 Paxos 模塊廣播給 MGR 集群中的各個節(jié)點,包括其自身。這個過程類似于 Paxos 協(xié)議中的提議階段,每個節(jié)點都可以提出事務(wù)提議。

沖突檢測與解決

  • 各個節(jié)點在接收到事務(wù)信息后,會各自進行沖突檢測。如果多個事務(wù)修改了同一行數(shù)據(jù),MGR 會采用 “先提交者獲勝” 的策略,后提交的事務(wù)將被回滾。在多主模式下,節(jié)點會根據(jù)版本號,如 trx_id 或行級時間戳等,判斷最新版本,拒絕舊版本的事務(wù)。如果是單主模式,當(dāng)主節(jié)點在應(yīng)用來自前一個主節(jié)點的中繼日志時,不進行沖突檢測,其他情況則需要進行沖突檢測。
  • 具體處理流程(3 節(jié)點場景)

    假設(shè)集群節(jié)點為 A、B、C,事務(wù) T 在節(jié)點 A 發(fā)起:

  • 事務(wù)執(zhí)行與廣播:節(jié)點 A 執(zhí)行 T 并生成 WriteSet,廣播給 B 和 C。

  • 多數(shù)派初步確認(rèn):節(jié)點 A 和 B 檢測到 T 的 WriteSet 與本地歷史無沖突,返回 “確認(rèn)”(已滿足多數(shù)派 2/3)。

  • 第 3 節(jié)點檢測到?jīng)_突:節(jié)點 C 發(fā)現(xiàn) T 的 WriteSet 與本地已提交的事務(wù) T’ 沖突(例如 T 和 T’ 都修改了 user.id=1),返回 “沖突”。

  • 全集群事務(wù)回滾:
    • 節(jié)點 A 收到 C 的 “沖突” 反饋后,判定 T 為沖突事務(wù),立即在本地回滾 T。
    • 同時向 B 和 C 廣播 “事務(wù) T 沖突,需回滾” 的指令。
    • 節(jié)點 B 即使已初步確認(rèn)無沖突,也會執(zhí)行回滾(放棄 T 的執(zhí)行)。
    • 最終,A、B、C 均不保留 T 的修改,集群數(shù)據(jù)保持一致。

多數(shù)派確認(rèn)

  • Paxos 協(xié)議的核心是 “多數(shù)派確認(rèn)” 機制。在 MGR 中,僅當(dāng)多數(shù)節(jié)點,即超過半數(shù)的節(jié)點確認(rèn)接收并接受該寫集合后,事務(wù)才會最終提交。例如,在一個 3 節(jié)點的集群中,至少需要 2 個節(jié)點確認(rèn)后事務(wù)才能提交。這確保了只有被多數(shù)節(jié)點認(rèn)可的寫操作才會被最終執(zhí)行,從而避免了數(shù)據(jù)丟失。

狀態(tài)同步與主節(jié)點選舉

  • 當(dāng)新的事務(wù)提交或者主節(jié)點發(fā)生變化時,節(jié)點之間需要進行狀態(tài)同步。例如,當(dāng)主節(jié)點不可用時,剩余節(jié)點會通過 Paxos 協(xié)議選舉新的主節(jié)點。選舉過程中,需滿足 “多數(shù)存活” 條件,如 3 節(jié)點集群中至少 2 節(jié)點存活。新主節(jié)點會同步已提交的全局事務(wù),確保數(shù)據(jù)完整性后再對外提供服務(wù)。

原子廣播

  • MGR 基于 Paxos 的原子廣播特性,確保所有節(jié)點要么全部接收消息,要么全部不接收。這意味著在事務(wù)廣播過程中,不會出現(xiàn)部分節(jié)點接收到消息并執(zhí)行,而另一部分節(jié)點未接收到消息的情況,從而避免了數(shù)據(jù)不一致。

3.mgr搭建

角色IP
192.168.160.205
192.168.160.203
192.168.160.206

安裝mysql(三個)

創(chuàng)建數(shù)據(jù)庫目錄

mkdir -p /data/mysql/mysqldata/mysql3306/{data,logs,binlog,relaylog,sock,backup,tmp}
mkdir -p /data/mysql/mysqlbase
touch /data/mysql/mysqldata/mysql3306/logs/error.log

解壓安裝包

tar -xvf mysql-8.0.43-linux-glibc2.17-x86_64.tar.xz -C /data/mysql/mysqlbase/
cd /data/mysql/mysqlbase/
mv mysql-8.0.43-linux-glibc2.17-x86_64/ mysql3306

添加配置文件

cd /data/mysql/mysqldata/mysql3306/
vim my8.cnf

[mysql]
default-character-set=utf8mb4
[mysqld]
port=3306
character-set-server=utf8mb4
default-storage-engine=INNODB
general_log= on
max_connections=100
interactive_timeout = 120
wait_timeout = 120

###dir
basedir=/data/mysql/mysqlbase/mysql3306
datadir=/data/mysql/mysqldata/mysql3306/data
pid-file=/data/mysql/mysqldata/mysql3306/sock/mysqld.pid
socket = /data/mysql/mysqldata/mysql3306/sock/mysql.sock
tmpdir=/data/mysql/mysqldata/mysql3306/tmp
log-error=/data/mysql/mysqldata/mysql3306/logs/error.log

###slow sql
slow_query_log = ON
slow_query_log_file = /data/mysql/mysqldata/mysql3306/logs/slow.log
long_query_time = 0.5

###safe
#skip-grant-tables
skip-name-resolve

###memory size
binlog_cache_size = 4096
max_binlog_cache_size = 256m
table_open_cache=2000
tmp_table_size=256m
key_buffer_size=256M
read_buffer_size=4M
read_rnd_buffer_size=32M
innodb_log_buffer_size=32M
innodb_buffer_pool_size=512M
join_buffer_size=128M
sort_buffer_size=32M
bulk_insert_buffer_size = 64M

###file size
max_binlog_size = 50m
innodb_log_file_size=128M

###replication
server-id=1
log_bin=ON
binlog_expire_logs_seconds = 2592000
binlog_format=ROW
gtid_mode=on
enforce_gtid_consistency=on
log-slave-updates=1
skip_slave_start=0
enforce_gtid_consistency=ON
master_info_repository=TABLE
relay_log_info_repository=TABLE
binlog_checksum=NONE
log_bin=/data/mysql/mysqldata/mysql3306/binlog/mysql-bin
log_bin_index=/data/mysql/mysqldata/mysql3306/binlog/mysql-bin.index
relay-log-index = /data/mysql/mysqldata/mysql3306/relaylog/mysql-relay-bin.index
relay-log = /data/mysql/mysqldata/mysql3306/relaylog/mysql-relay-bin

修改用戶權(quán)限

useradd mysql
chown -R mysql:mysql /data/mysql/mysqldata/
chown -R mysql:mysql /data/mysql/mysqlbase/
chmod 755 /data/mysql/mysqlbase/
chmod 755 /data/mysql/mysqldata/

啟動數(shù)據(jù)庫

/data/mysql/mysqlbase/mysql3306/bin/mysqld --defaults-file=/data/mysql/mysqldata/mysql3306/my8.cnf --datadir=/data/mysql/mysqldata/mysql3306/data --user=mysql  --initialize-insecure --console
/data/mysql/mysqlbase/mysql3306/bin/mysqld_safe --defaults-file=/data/mysql/mysqldata/mysql3306/my8.cnf 2>&1 &

登錄數(shù)據(jù)庫修改密碼

/data/mysql/mysqlbase/mysql3306/bin/mysql -S /data/mysql/mysqldata/mysql3306/sock/mysql.sock -A
SET SQL_LOG_BIN=0;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
update mysql.user set host='%' where user='root';
flush privileges;
SET SQL_LOG_BIN=1;
exit;
/data/mysql/mysqlbase/mysql3306/bin/mysql -uroot -proot -S /data/mysql/mysqldata/mysql3306/sock/mysql.sock -A

mgr配置

創(chuàng)建mgr用戶(三個)

SET SQL_LOG_BIN=0;
CREATE USER mgruser@'%' IDENTIFIED BY 'mgruser';
GRANT REPLICATION SLAVE ON *.* TO mgruser@'%';
#MySQL8.0默認(rèn)認(rèn)證插件為 caching_sha2_password,需要ssl,在啟動mgr的時候沒有ssl會報錯,修改為mysql_native_password 避免
ALTER USER 'mgruser'@'%' IDENTIFIED WITH mysql_native_password BY 'mgruser';
FLUSH PRIVILEGES;
SET SQL_LOG_BIN=1;
CHANGE MASTER TO MASTER_USER='mgruser', MASTER_PASSWORD='mgruser' FOR CHANNEL 'group_replication_recovery';

安裝mgr插件(三個)

install PLUGIN group_replication SONAME 'group_replication.so';
show plugins;

添加配置文件

主節(jié)點

vim /data/mysql/mysqldata/mysql3306/my8.cnf
#修改server_id,每個節(jié)點必須不一樣
server-id=1
###mgr
# 8.0 默認(rèn)值XXHASH64,針對寫事務(wù)進行哈希處理
transaction_write_set_extraction=XXHASH64
# 啟動加載組復(fù)制插件
#plugin_load_add='group_replication.so'
# 集群唯一ID
group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
# 是否啟動MySQL服務(wù)時啟動組復(fù)制,建議值:off
group_replication_start_on_boot=off
# 本地IP后面端口33061可自定義,集群通信端口,建議統(tǒng)一端口
group_replication_local_address= "192.168.160.205:33061"
# 初始化集群成員列表,可動態(tài)修改
group_replication_group_seeds= "192.168.160.205:33061,192.168.160.203:33061,192.168.160.206:33061"
# 判斷是否為引導(dǎo)組
group_replication_bootstrap_group=off
group_replication_single_primary_mode = ON  # 單主模式(默認(rèn),可選多主模式 OFF)
# 設(shè)置白名單,這里特別注意,如果是同網(wǎng)段可以不用設(shè)置,如果是不同網(wǎng)段則需要修改否則通信端口不可訪問
loose-group_replication_ip_whitelist='192.168.160.205,192.168.160.203,192.168.160.206'

節(jié)點2

vim /data/mysql/mysqldata/mysql3306/my8.cnf
#修改server_id,每個節(jié)點必須不一樣
server-id=2
###mgr
# 8.0 默認(rèn)值XXHASH64,針對寫事務(wù)進行哈希處理
transaction_write_set_extraction=XXHASH64
# 啟動加載組復(fù)制插件
#plugin_load_add='group_replication.so'
# 集群唯一ID
group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
# 是否啟動MySQL服務(wù)時啟動組復(fù)制,建議值:off
group_replication_start_on_boot=off
# 本地IP后面端口33061可自定義,集群通信端口,建議統(tǒng)一端口
group_replication_local_address= "192.168.160.203:33061"
# 初始化集群成員列表,可動態(tài)修改
group_replication_group_seeds= "192.168.160.205:33061,192.168.160.203:33061,192.168.160.206:33061"
# 判斷是否為引導(dǎo)組
group_replication_bootstrap_group=off
group_replication_single_primary_mode = ON  # 單主模式(默認(rèn),可選多主模式 OFF)
# 設(shè)置白名單,這里特別注意,如果是同網(wǎng)段可以不用設(shè)置,如果是不同網(wǎng)段則需要修改否則通信端口不可訪問
loose-group_replication_ip_whitelist='192.168.160.205,192.168.160.203,192.168.160.206'

節(jié)點3

vim /data/mysql/mysqldata/mysql3306/my8.cnf
#修改server_id,每個節(jié)點必須不一樣
server-id=3
###mgr
# 8.0 默認(rèn)值XXHASH64,針對寫事務(wù)進行哈希處理
transaction_write_set_extraction=XXHASH64
# 啟動加載組復(fù)制插件
#plugin_load_add='group_replication.so'
# 集群唯一ID
group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
# 是否啟動MySQL服務(wù)時啟動組復(fù)制,建議值:off
group_replication_start_on_boot=off
# 本地IP后面端口33061可自定義,集群通信端口,建議統(tǒng)一端口
group_replication_local_address= "192.168.160.206:33061"
# 初始化集群成員列表,可動態(tài)修改
group_replication_group_seeds= "192.168.160.205:33061,192.168.160.203:33061,192.168.160.206:33061"
# 判斷是否為引導(dǎo)組
group_replication_bootstrap_group=off
group_replication_single_primary_mode = ON  # 單主模式(默認(rèn),可選多主模式 OFF)
# 設(shè)置白名單,這里特別注意,如果是同網(wǎng)段可以不用設(shè)置,如果是不同網(wǎng)段則需要修改否則通信端口不可訪問
loose-group_replication_ip_whitelist='192.168.160.205,192.168.160.203,192.168.160.206'

重啟MySQL服務(wù)(三個)

shutdown;
exit;
/data/mysql/mysqlbase/mysql3306/bin/mysqld_safe --defaults-file=/data/mysql/mysqldata/mysql3306/my8.cnf 2>&1 &
/data/mysql/mysqlbase/mysql3306/bin/mysql -uroot -proot -S /data/mysql/mysqldata/mysql3306/sock/mysql.sock -A

主庫啟動mgr

SET GLOBAL group_replication_bootstrap_group=ON;
START GROUP_REPLICATION;
SET GLOBAL group_replication_bootstrap_group=OFF;

從庫加入mgr

START GROUP_REPLICATION;

查看成員狀態(tài)

SELECT * FROM performance_schema.replication_group_members;

mgr常用命令

-- 啟動MGR(節(jié)點加入集群)
START GROUP_REPLICATION;
-- 停止MGR(節(jié)點退出集群)
STOP GROUP_REPLICATION;

---------------------------------------------------------------------------------
-- 查看所有節(jié)點的ID、主機、端口、狀態(tài)(ONLINE/RECOVERING/OFFLINE等)
SELECT * FROM performance_schema.replication_group_members;

-------------------------------------------------------------------------------
-- 區(qū)分主節(jié)點(PRIMARY)和從節(jié)點(SECONDARY)
SELECT member_id, member_host, member_role FROM performance_schema.replication_group_members;

-----------------------------------------------------------------------------
-- 對比所有節(jié)點已執(zhí)行的GTID集合,確認(rèn)數(shù)據(jù)是否一致
SELECT member_id,member_host,@@global.gtid_executed AS executed_gtid
FROM performance_schema.replication_group_members;

-----------------------------------------------------------------------------
-- 查看節(jié)點發(fā)送/接收字節(jié)數(shù)、事務(wù)數(shù)等
SELECT * FROM performance_schema.replication_group_member_stats;

----------------------------------------------------------------------------
--加入新節(jié)點,在新節(jié)點執(zhí)行以下命令
  -- 1. 配置集群通信用戶(與集群其他節(jié)點一致)
CHANGE REPLICATION SOURCE TO
  SOURCE_USER = 'mgr_repl',  -- 復(fù)制用戶名
  SOURCE_PASSWORD = 'repl_pass'  -- 密碼
  FOR CHANNEL 'group_replication_recovery';
  -- 2. 啟動MGR加入集群
START GROUP_REPLICATION;

---------------------------------------------------------------------------
--單主模式下切換主節(jié)點(集群必須要是正常的)
  -- 語法:SELECT group_replication_set_as_primary('目標(biāo)節(jié)點的member_id');
  -- 示例:將member_id為'1234-...'的節(jié)點設(shè)為主節(jié)點
SELECT group_replication_set_as_primary('12345678-aaaa-bbbb-cccc-1234567890ab');

--------------------------------------------------------------------------
--切換集群模式
  -- 1. 所有節(jié)點停止MGR
STOP GROUP_REPLICATION;
  -- 2. 切換為多主模式(所有節(jié)點執(zhí)行)
SET GLOBAL group_replication_single_primary_mode = OFF;
  -- 或切換為單主模式
SET GLOBAL group_replication_single_primary_mode = ON;
  -- 3. 所有節(jié)點重啟MGR生效
START GROUP_REPLICATION;

--------------------------------------------------------------------------
-- 查看group_replication_recovery通道的連接狀態(tài)(節(jié)點加入時的數(shù)據(jù)同步)
SELECT * FROM performance_schema.replication_connection_status 
WHERE CHANNEL_NAME = 'group_replication_recovery';

-------------------------------------------------------------------------
--重置節(jié)點復(fù)制配置信息
  -- 停止MGR
STOP GROUP_REPLICATION;
  -- 重置recovery通道的復(fù)制配置
RESET SLAVE ALL FOR CHANNEL 'group_replication_recovery';
  -- 重新配置復(fù)制用戶(若需)
CHANGE REPLICATION SOURCE TO
  SOURCE_USER = 'mgr_repl',
  SOURCE_PASSWORD = 'repl_pass'
  FOR CHANNEL 'group_replication_recovery';
  -- 重啟MGR
START GROUP_REPLICATION;

---------------------------------------------------------------------------

到此這篇關(guān)于MySQL mgr搭建的實現(xiàn)步驟的文章就介紹到這了,更多相關(guān)MySQL mgr搭建內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mysql踩坑之limit與sum函數(shù)混合使用問題詳解

    mysql踩坑之limit與sum函數(shù)混合使用問題詳解

    這篇文章主要給大家介紹了關(guān)于mysql踩坑之limit與sum函數(shù)混合使用問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用mysql具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • 使用innodb_force_recovery解決MySQL崩潰無法重啟問題

    使用innodb_force_recovery解決MySQL崩潰無法重啟問題

    這篇文章主要介紹了使用innodb_force_recovery解決MySQL崩潰無法重啟問題,這只一個成功案例,并不是萬能的解決方法,需要酌情考慮,需要的朋友可以參考下
    2015-05-05
  • MySQL中普通CTE和遞歸CTE的順序問題小結(jié)

    MySQL中普通CTE和遞歸CTE的順序問題小結(jié)

    本文主要介紹了MySQL 中普通 CTE 和遞歸 CTE 的順序問題,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-08-08
  • mysql忘記密碼重置的方法實現(xiàn)

    mysql忘記密碼重置的方法實現(xiàn)

    本文主要介紹了mysql忘記密碼重置的方法實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • MySQL asc、desc數(shù)據(jù)排序的實現(xiàn)

    MySQL asc、desc數(shù)據(jù)排序的實現(xiàn)

    這篇文章主要介紹了MySQL asc、desc數(shù)據(jù)排序的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • mysql 存儲過程中變量的定義與賦值操作

    mysql 存儲過程中變量的定義與賦值操作

    昨天我們講了mysql存儲過程創(chuàng)建修改與刪除,下面我們這篇教程是講關(guān)于mysql存儲過程中變量的定義賦值操作哦。
    2010-05-05
  • MySQL:Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEM

    MySQL:Unsafe statement written to the binary log using state

    這篇文章主要介紹了MySQL:Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEM,需要的朋友可以參考下
    2016-05-05
  • MySQL連接異常場景模擬與排查的實戰(zhàn)指南

    MySQL連接異常場景模擬與排查的實戰(zhàn)指南

    在日常開發(fā)與運維中,MySQL連接故障是高頻問題,若無法快速定位根源,會嚴(yán)重影響業(yè)務(wù)穩(wěn)定性,本文通過實驗?zāi)M8種常見MySQL連接異常場景,結(jié)合具體操作步驟與報錯信息,梳理出有報錯和無報錯兩種情況下的排查思路,需要的朋友可以參考下
    2026-01-01
  • MySQL中的case?when中對于NULL值判斷的坑及解決

    MySQL中的case?when中對于NULL值判斷的坑及解決

    這篇文章主要介紹了MySQL中的case?when中對于NULL值判斷的坑及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • MySQL安全快速的刪除一張大表的正確方式

    MySQL安全快速的刪除一張大表的正確方式

    生產(chǎn)環(huán)境中直接 DROP TABLE 一張千萬級大表無異于自 殺,本文深度解析 InnoDB 刪表的底層原理,提供一套無感刪表的標(biāo)準(zhǔn)操作流程(SOP),助你在不影響業(yè)務(wù)的前提下,安全、快速地清理海量數(shù)據(jù),需要的朋友可以參考下
    2026-03-03

最新評論

青河县| 福泉市| 通城县| 新丰县| 昌图县| 四会市| 五峰| 建瓯市| 西吉县| 峡江县| 同心县| 清原| 鄂托克前旗| 景德镇市| 辽阳县| 永城市| 田林县| 柳江县| 衡南县| 巧家县| 冀州市| 柳河县| 舟山市| 福鼎市| 五常市| 浙江省| 曲周县| 离岛区| 吴旗县| 英吉沙县| 尼勒克县| 贞丰县| 陇南市| 汉源县| 驻马店市| 启东市| 临西县| 香格里拉县| 象山县| 杂多县| 海丰县|