Centos7部署MySQL8+keepalived雙主熱備(含Keepalived配置與GTID同步優(yōu)化方案)
架構(gòu)拓?fù)湓?/strong>
GTID同步 VIP 192.168.1.100 MySQL主節(jié)點(diǎn)1 MySQL主節(jié)點(diǎn)2
核心邏輯:
通過(guò)Keepalived實(shí)現(xiàn)VIP漂移
雙向GTID同步保證數(shù)據(jù)一致性
雙寫(xiě)模式需配合應(yīng)用層沖突解決機(jī)制
MySQL 8部署流程
? 步驟1:官方源配置
wget https://repo.mysql.com//mysql80-community-release-el7-7.noarch.rpm
sudo rpm -Uvh mysql80-community-release-el7-7.noarch.rpm
?
?? 注意:
確認(rèn)EL7版本與CentOS 7兼容
國(guó)內(nèi)鏡像加速可替換為華為云源
安裝前執(zhí)行 yum clean all && yum makecache
? 步驟2:安裝與服務(wù)啟動(dòng)
sudo yum install mysql-community-server
sudo systemctl enable --now mysqld
?
安全初始化:
# 查看臨時(shí)密碼
grep 'temporary password' /var/log/mysqtd.log
# 執(zhí)行安全腳本
mysql_secure_installation
?
密碼策略說(shuō)明:
策略項(xiàng) 默認(rèn)值 修改建議,密碼長(zhǎng)度 8字符 ≥12字符,特殊字符 必需 維持強(qiáng)校驗(yàn),密碼過(guò)期 180天 生產(chǎn)環(huán)境建議90天
雙主同步配置
節(jié)點(diǎn)1配置(192.168.1.10)
# /etc/my.cnf
[mysqld]
server-id=1
log-bin=mysql-bin
binlog_format=ROW
gtid_mode=ON
enforce_gtid_consistency=ON
binlog_do_db=需要同步的數(shù)據(jù)庫(kù)名
auto_increment_increment=2 # 雙主必須配置
auto_increment_offset=1
?
節(jié)點(diǎn)2配置(192.168.1.11)
auto_increment_increment=2
auto_increment_offset=2 # 確保自增ID不沖突
?
? 授權(quán)同步賬戶
-- 在兩臺(tái)服務(wù)器分別執(zhí)行
CREATE USER 'sync_user'@'%' IDENTIFIED BY 'V3ryS3cure!P@ss';
GRANT REPLICATION SLAVE ON *.* TO 'sync_user'@'%';
ALTER USER 'sync_user'@'%' IDENTIFIED WITH mysql_native_password BY 'V3ryS3cure!P@ss';
?
? 建立雙向通道
-- 在節(jié)點(diǎn)1執(zhí)行
CHANGE MASTER TO
MASTER_HOST='192.168.1.11',
MASTER_USER='sync_user',
MASTER_PASSWORD='V3ryS3cure!P@ss',
MASTER_AUTO_POSITION=1;
-- 在節(jié)點(diǎn)2執(zhí)行
CHANGE MASTER TO
MASTER_HOST='192.168.1.10',
MASTER_USER='sync_user',
MASTER_PASSWORD='V3ryS3cure!P@ss',
MASTER_AUTO_POSITION=1;
START SLAVE;
?
Keepalived高可用配置
主節(jié)點(diǎn)配置(192.168.1.10)
# /etc/keepalived/keepalived.conf
global_defs {
router_id MYSQL_HA_01
}
vrrp_script chk_mysql {
script "/usr/local/bin/mysql_check.sh"
interval 2
weight 2
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
virtual_ipaddress {
192.168.1.100/24 dev eth0
}
track_script {
chk_mysql
}
}
?
備節(jié)點(diǎn)配置(192.168.1.11)
router_id MYSQL_HA_02
state BACKUP
priority 90
?
? 健康檢測(cè)腳本
#!/bin/bash
# /usr/local/bin/mysql_check.sh
if ! mysqladmin ping -h127.0.0.1 -uroot -p'YourPassword' >/dev/null 2>&1; then
systemctl stop keepalived
exit 1
fi
exit 0
?
安全加固:
腳本權(quán)限設(shè)置為700
使用獨(dú)立監(jiān)控賬戶代替root
日志記錄到/var/log/keepalived.log
關(guān)鍵驗(yàn)證操作
1. 同步狀態(tài)檢查
SHOW SLAVE STATUSG
-- 確認(rèn)以下參數(shù):
-- Slave_IO_Running: Yes
-- Slave_SQL_Running: Yes
-- Retrieved_Gtid_Set: 正常遞增
?
2. VIP漂移測(cè)試
# 主節(jié)點(diǎn)執(zhí)行
systemctl stop mysqld
# 觀察備節(jié)點(diǎn)是否接管VIP
ip addr show eth0 | grep 192.168.1.100
?
3. 數(shù)據(jù)沖突測(cè)試
-- 節(jié)點(diǎn)1插入
INSERT INTO test.t1 VALUES (null, 'node1');
-- 節(jié)點(diǎn)2插入
INSERT INTO test.t1 VALUES (null, 'node2');
-- 檢查雙節(jié)點(diǎn)數(shù)據(jù)一致性
?
安全加固清單
啟用SSL加密傳輸
配置iptables防火墻規(guī)則
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="3306" accept'
?
開(kāi)啟審計(jì)日志
[mysqld]
audit_log=ON
audit_log_format=JSON
?
定期備份驗(yàn)證
mysqldump --single-transaction --master-data=2 -uroot -p dbname > backup.sql
審核編輯 黃宇
?
-
SSL
+關(guān)注
關(guān)注
0文章
132瀏覽量
26747 -
CentOS
+關(guān)注
關(guān)注
0文章
85瀏覽量
14757
發(fā)布評(píng)論請(qǐng)先 登錄
如何突破AI存儲(chǔ)墻?深度解析ONFI 6.0高速接口與Chiplet解耦架構(gòu)
全志T153處理器ARM+RISC-V的雙核CP多有強(qiáng)?——飛凌嵌入式
熱解粒子火災(zāi)預(yù)警系統(tǒng) 電氣火災(zāi)監(jiān)測(cè)預(yù)警系統(tǒng)廠家沃倫森電氣
服務(wù)器數(shù)據(jù)恢復(fù)—Raid5兩盤(pán)損壞熱備盤(pán)未啟咋恢復(fù)?
Mysql數(shù)據(jù)恢復(fù)—Windows Server下MySQL(InnoDB)全表誤刪數(shù)據(jù)恢復(fù)案例
企業(yè)級(jí)HDFS高可用與YARN資源調(diào)度方案
華納云:海外服務(wù)器負(fù)載均衡與高可用架構(gòu)設(shè)計(jì)
服務(wù)器數(shù)據(jù)恢復(fù)—熱備盤(pán)上線過(guò)程中硬盤(pán)掉線導(dǎo)致數(shù)據(jù)丟失,數(shù)據(jù)恢復(fù)揭秘
深入剖析RabbitMQ高可用架構(gòu)設(shè)計(jì)
QNAP 正式推出 NAS 雙機(jī)架構(gòu)的高可用性解決方案,打造不中斷的儲(chǔ)存環(huán)境
raid5數(shù)據(jù)恢復(fù)—raid5陣列熱備盤(pán)未完全激活導(dǎo)致崩潰的數(shù)據(jù)恢復(fù)案例
介紹三種常見(jiàn)的MySQL高可用方案
MYSQL集群高可用和數(shù)據(jù)監(jiān)控平臺(tái)實(shí)現(xiàn)方案
服務(wù)器數(shù)據(jù)恢復(fù)—V7000存儲(chǔ)上raid5熱備盤(pán)同步失敗的數(shù)據(jù)恢復(fù)方案
利用dockerfile搭建mysql主從集群和redis集群
CentOS 7下MySQL 8雙主熱備高可用架構(gòu)全解
評(píng)論