ubuntu mysql 8.0.42 基于二進制日志文件位置和GTID主從復制配置

目錄

1 操作系統信息

2 MySql數據庫版本

3 主機列表

4 MySQL服務器都安裝依賴

5 主庫服務器安裝mysql軟件步驟:

6 從服務器安裝mysql軟件步驟

7 基于二進制日志文件位置的主從復制配置

8 使用全局事務標識符進行主從復制(GTID)

9 部署過程遇到問題


1 操作系統信息


root@u24-mysql-51:/mysql# cat /etc/issue
Ubuntu 24.04.2 LTS \n \l

2 MySql數據庫版本


mysql-8.0.42-linux-glibc2.28-x86_64.tar.xz

3 主機列表


192.168.254.51 ?#主庫
192.168.254.52 ?#從庫

4 MySQL服務器都安裝依賴


apt-get install libaio1


5 主庫服務器安裝mysql軟件步驟:


tar -xf mysql-8.0.42-linux-glibc2.28-x86_64.tar.xz -C /usr/local
cd /usr/local
mv mysql-8.0.42-linux-glibc2.28-x86_64 mysql-8.0.42

#創建用戶和組
groudadd mysql
useradd -g mysql -s /sbin/nologin mysql

#給MySql軟件目錄授權
chown -r mysql:mysql /usr/local/mysql-8.0.42

#編寫my.cnf配置文件
root@u24-mysql-51:~# cat /etc/my.cnf?
[client]
socket = /mysql/data/mysql.sock

[mysqld]
basedir = /usr/local/mysql-8.0.42
datadir = /mysql/data
user = mysql
port = 3306
socket = /mysql/data/mysql.sock
log_error = /mysql/data/mysqld.err
log_timestamps = system

log-bin = mysql-bin
server-id = 51


#初始化數據庫
mkdir /mysql/data -p
chown -R mysql:mysql /mysql/data
/usr/local/mysql-8.0.42/bin/mysqld --defaults-file=/etc/my.cnf --initialize


#配置啟動文件systemd
root@u24-mysql-52:/mysql/data# cat /lib/systemd/system/mysql.service?
[Unit]
Description=MySQL server
Documentation=man:mysql(8)?
After=network.target

[Service]
User=mysql
Group=mysql
Type=forking
PIDFile=/mysql/data/mysqld.pid
TimeoutSec=0
ExecStart=/usr/local/mysql-8.0.42/bin/mysqld --defaults-file=/etc/my.cnf --pid-file=/mysql/data/mysqld.pid --daemonize $MYSQLD_OTPS
EnvironmentFile=-/etc/sysconfig/mysql
LimitNOFILE=65535
Restart=on-failure
RestartPreventExitStatus=1
PrivateTmp=False

[Install]
WantedBy=multi-user.target
Alias=mysqld.service


#啟動MySQL
systemctl start mysql
systemctl enable mysql


#登錄并修改密碼
root@u24-mysql-51:~# grep password /mysql/data/mysqld.err?
2025-05-28T23:13:58.538997+08:00 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: shAuAVU%f5a-

/usr/local/mysql-8.0.42/bin/mysql -uroot -p'shAuAVU%f5a-'
mysql>alter user user() identified by '123456';

#配置環境變量
echo 'export PATH=$PATH:/usr/local/mysql-8.0.42/bin' >>~/.bashrc

6 從服務器安裝mysql軟件步驟


#從主庫復制軟件和數據庫文件
rsync -r /mysql 192.168.254.52:/
rsync -r /usr/local/mysql-8.0.42 192.168.254.52:/usr/local/
rsync /lib/systemd/system/mysql.service 192.168.254.52:/lib/systemd/system/mysql.service
rsync /etc/my.cnf 192.168.254.52:/etc/my.cnf

#創建用戶和組
groupadd mysql?
useradd -g mysql -s /sbin/nologin mysql

#給軟件和數據庫文件授權
chown -R mysql:mysql /mysql/
chown -R mysql:mysql /usr/local/mysql-8.0.42

#配置環境變量
echo 'export PATH=$PATH:/usr/local/mysql-8.0.42/bin' >>~/.bashrc
source ~/.bashrc

#啟動MySQL
systemctl start mysql
systemctl enable mysql


7 基于二進制日志文件位置的主從復制配置


7.1 主庫配置
添加server-id和開啟binlog
root@u24-mysql-51:~# cat /etc/my.cnf?
[mysqld]
log-bin = mysql-bin
server-id = 51

systemctl restart mysql

#創建用于復制的用戶
mysql -uroot -p
mysql> CREATE USER 'repl'@'192.168.254.%' IDENTIFIED BY 'password';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.254.%';
mysql> FLUSH TABLES WITH READ LOCK;
mysql> show master status \G;
*************************** 1. row ***************************
? ? ? ? ? ? ?File: mysql-bin.000007
? ? ? ? ?Position: 157
? ? ?Binlog_Do_DB:?
?Binlog_Ignore_DB:?
Executed_Gtid_Set:?
1 row in set (0.00 sec)

#使用 mysqldump 備份數據
root@u24-mysql-51:~# mysqldump -uroot -p --all-databases --source-data > data.sql

#解鎖
mysql -uroot -p
mysql> unlock tables;

#將data.sql備份文件傳送到從庫
root@u24-mysql-51:~#rsync data.sql 192.168.254.52:~


7.2 從庫配置(可以配置多臺從庫)
#添加server-id
root@u24-mysql-51:~# cat /etc/my.cnf?
[mysqld]
server-id = 52

#修改uuid,保證主從服務器上uuid是唯一,否則出現問題1報錯
root@u24-mysql-52:~# vi /mysql/data/auto.cnf?
[auto]
server-uuid=5d7fd409-3bd6-11f0-9d66-000c29704178

#重啟數據庫
systemctl restart mysql

#將data.sql數據導入數據庫
root@u24-mysql-52:~# mysql -uroot -p < data.sql?


#在從庫服務器上設置源配置
mysql>change replication source to source_host='192.168.254.51', source_user='repl', source_log_file='mysql-bin.000007', source_log_pos=157, SOURCE_PASSWORD='password',get_master_public_key=1;


mysql> start replica;
Query OK, 0 rows affected (0.41 sec)

mysql> show slave status \G
*************************** 1. row ***************************
? ? ? ? ? ? ? ?Slave_IO_State: Waiting for source to send event
? ? ? ? ? ? ? ? ? Master_Host: 192.168.254.51
? ? ? ? ? ? ? ? ? Master_User: repl
? ? ? ? ? ? ? ? ? Master_Port: 3306
? ? ? ? ? ? ? ? Connect_Retry: 60
? ? ? ? ? ? ? Master_Log_File: mysql-bin.000007
? ? ? ? ? Read_Master_Log_Pos: 157
? ? ? ? ? ? ? ?Relay_Log_File: u24-mysql-52-relay-bin.000002
? ? ? ? ? ? ? ? Relay_Log_Pos: 326
? ? ? ? Relay_Master_Log_File: mysql-bin.000007
? ? ? ? ? ? ?Slave_IO_Running: Yes
? ? ? ? ? ? Slave_SQL_Running: Yes


#出現以下兩個yes說明主從復制已經完成
Slave_IO_Running: Yes
Slave_SQL_Running: Yes


8 使用全局事務標識符進行主從復制(GTID)


8.1 主庫配置
#在my.cnf添加以下參數?
root@u24-mysql-51:~# cat /etc/my.cnf?
[mysqld]
log-bin = mysql-bin
server-id = 51
gtid_mode=ON
enforce-gtid-consistency=ON

#創建用于復制的用戶
mysql -uroot -p
mysql> CREATE USER 'repl'@'192.168.254.%' IDENTIFIED BY 'password';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.254.%';
mysql> FLUSH TABLES WITH READ LOCK;

#使用 mysqldump 備份數據
root@u24-mysql-51:~# mysqldump -uroot -p --all-databases --source-data > data.sql

#解鎖
mysql -uroot -p
mysql> unlock tables;

#將data.sql備份文件傳送到從庫
root@u24-mysql-51:~#rsync data.sql 192.168.254.52:~


8.2 從庫配置
#在my.cnf添加以下參數?
root@u24-mysql-51:~# cat /etc/my.cnf?
[mysqld]
log-bin = mysql-bin
server-id = 52
gtid_mode=ON
enforce-gtid-consistency=ON


#修改uuid,保證主從服務器上uuid是唯一,否則出現問題1報錯
root@u24-mysql-52:~# vi /mysql/data/auto.cnf?
[auto]
server-uuid=5d7fd409-3bd6-11f0-9d66-000c29704178


#將data.sql數據導入數據庫
root@u24-mysql-52:~# mysql -uroot -p < data.sql?

#在從庫服務器上設置源配置
mysql>change replication source to source_host='192.168.254.51', source_user='repl', SOURCE_PASSWORD='password',SOURCE_AUTO_POSITION = 1,get_master_public_key=1;

mysql> start replica;
Query OK, 0 rows affected (0.41 sec)

mysql> show slave status \G
*************************** 1. row ***************************
? ? ? ? ? ? ? ?Slave_IO_State: Waiting for source to send event
? ? ? ? ? ? ? ? ? Master_Host: 192.168.254.51
? ? ? ? ? ? ? ? ? Master_User: repl
? ? ? ? ? ? ? ? ? Master_Port: 3306
? ? ? ? ? ? ? ? Connect_Retry: 60
? ? ? ? ? ? ? Master_Log_File: mysql-bin.000007
? ? ? ? ? Read_Master_Log_Pos: 157
? ? ? ? ? ? ? ?Relay_Log_File: u24-mysql-52-relay-bin.000002
? ? ? ? ? ? ? ? Relay_Log_Pos: 326
? ? ? ? Relay_Master_Log_File: mysql-bin.000007
? ? ? ? ? ? ?Slave_IO_Running: Yes
? ? ? ? ? ? Slave_SQL_Running: Yes


#出現以下兩個yes說明主從復制已經完成
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

9 部署過程遇到問題

問題1:
mysql> show replica status \G
? ? ??
Source_SSL_Verify_Server_Cert: Yes
? ? ? ? ? ? ? ? Last_IO_Errno: 13117
? ? ? ? ? ? ? ? Last_IO_Error: Fatal error: The replica I/O thread stops because source and replica have equal MySQL server UUIDs; these UUIDs must be different for replication to work.

解決方法:
修改server-uuid的值,保證集群唯一
root@u24-mysql-52:/mysql/data# vi auto.cnf?
[auto]
server-uuid=5d7fd409-3bd6-11f0-9d66-000c29704178


問題2:
mysql> show replica status \G;

Source_SSL_Verify_Server_Cert: Yes
? ? ? ? ? ? ? ? Last_IO_Errno: 2061
? ? ? ? ? ? ? ? Last_IO_Error: Error connecting to source 'repl@192.168.254.51:3306'. This was attempt 11/86400, with a delay of 60 seconds between attempts. Message: Authentication plugin 'caching_sha2_password' reported error: Authentication requires secure connection.


解決方法:
添加:get_master_public_key=1 參數

mysql>change replication source to source_host='192.168.254.51', source_user='repl', source_log_file='mysql-bin.000007', source_log_pos=157, SOURCE_PASSWORD='password',,get_master_public_key=1;

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

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

相關文章

鴻蒙OSUniApp滑動鎖屏實戰:打造流暢優雅的移動端解鎖體驗#三方框架 #Uniapp

UniApp滑動鎖屏實戰&#xff1a;打造流暢優雅的移動端解鎖體驗 引言 移動應用的安全性和用戶體驗是開發中不可忽視的重要環節。滑動鎖屏作為一種直觀、安全且用戶友好的解鎖方式&#xff0c;在移動應用中得到廣泛應用。本文將深入探討如何使用UniApp框架實現一個功能完備、動…

專場回顧 | 重新定義交互,智能硬件的未來設計

自2022年起&#xff0c;中國智能硬件行業呈現出蓬勃發展的態勢&#xff0c;市場規模不斷擴大。一個多月前&#xff0c;“小智AI”在短視頻平臺的爆火將智能硬件帶向了大眾視野&#xff0c;也意味著智能硬件已不再僅僅停留在概念和技術層面&#xff0c;而是加速邁向實際落地應用…

zynq 級聯多個ssd方案設計(ECAM BUG修改)

本文講解采用zynq7045芯片如何實現200T容量高速存儲方案設計&#xff0c;對于大容量高速存儲卡&#xff0c;首先會想到采用pcie switch級聯方式&#xff0c;因為單張ssd的容量是有限制的&#xff08;目前常見的m.2接口容量為4TB&#xff0c;U.2接口容量為16TB&#xff09;&…

中國區域每月地下水水位柵格數據集(2005-2022)

時間分辨率&#xff1a;月空間分辨率&#xff1a;1km - 10km共享方式&#xff1a;開放獲取數據大小&#xff1a;8.52 GB數據時間范圍&#xff1a;2005-01-01 — 2022-12-01元數據更新時間&#xff1a;2024-09-09 數據集摘要 數據集“GWs_cn_1km”提供了2005年至2022年中國區域…

鴻蒙OSUniApp導航欄組件開發:打造清新簡約的用戶界面#三方框架 #Uniapp

UniApp 開發實戰&#xff1a;打造符合鴻蒙設計風格的日歷活動安排組件 在移動應用開發中&#xff0c;日歷和活動安排是非常常見的需求。本文將詳細介紹如何使用 UniApp 框架開發一個優雅的日歷活動安排組件&#xff0c;并融入鴻蒙系統的設計理念&#xff0c;實現一個既美觀又實…

在 HTML 文件中添加圖片的常用方法

本文詳解HTML圖片插入方法&#xff1a;1&#xff09;通過<img>標簽實現&#xff0c;必須含src和alt屬性&#xff1b;2&#xff09;路徑支持絕對/相對引用&#xff1b;3&#xff09;建議設置width/height保持比例&#xff1b;4&#xff09;響應式方案用srcset適配不同設備…

LangChain-自定義Tool和Agent結合DeepSeek應用實例

除了調用LangChain內置工具外&#xff0c;也可以自定義工具 實例1&#xff1a; 自定義多個工具 from langchain.agents import initialize_agent, AgentType from langchain_community.agent_toolkits.load_tools import load_tools from langchain_core.tools import tool, …

代碼隨想錄算法訓練營第60期第五十天打卡

大家好&#xff0c;首先感慨一下&#xff0c;時間過的真是快&#xff0c;不知不覺我們的訓練營就已經到第五十天了&#xff0c;首先祝賀自己一直在堅持&#xff0c;今天是我們動態規劃章節的收官之戰&#xff0c;明天我們就會走進一個全新的算法章節單調棧&#xff0c;我們要為…

如何發布npm包?

如何發布npm包&#xff1f; 1. 注冊賬號[npm官網](https://www.npmjs.com/)2. 檢查 npm 源是否在官方 npm 倉庫&#xff0c;如果不在&#xff0c;進行切換3. 檢查4. 打包配置5. 發布6. 使用錯誤&#xff1a;版本更新命令 1. 注冊賬號npm官網 2. 檢查 npm 源是否在官方 npm 倉庫…

AI工具使用的最佳實踐,如何通過AI工具提高創作與工作效率

隨著科技的迅猛發展&#xff0c;人工智能&#xff08;AI&#xff09;已從遙不可及的未來構想&#xff0c;轉變為廣泛應用于各行業的實用工具。AI不僅在內容創作、設計、寫作等領域展現出巨大潛力&#xff0c;還通過自動化和智能化顯著提升了工作效率。本文將深入探討如何通過選…

漏洞Reconfigure the affected application to avoid use of weak cipher suites. 修復方案

修復方案&#xff1a;禁用弱加密套件&#xff08;Weak Cipher Suites&#xff09; 1. 確認當前使用的加密套件 在修復前&#xff0c;先檢查應用程序或服務器當前支持的加密套件&#xff1a; OpenSSL (適用于HTTPS/TLS服務)openssl ciphers -v ALL:COMPLEMENTOFALL | sortNgi…

AI對軟件工程的影響及未來發展路徑分析報告

目錄 第一部分&#xff1a;引言 研究背景與意義 報告框架與方法論 第二部分&#xff1a;AI對不同行業軟件工程的影響分析 數字化行業 制造業 零售業 工業領域 第三部分&#xff1a;大廠AI軟件工程實踐案例分析 微軟 谷歌 阿里巴巴 華為 第四部分&#xff1a;未來…

WSL里執行python深度學習的一些方法記錄

安裝anaconda3&#xff1a; 可以直接從 Download Now | Anaconda 中下載&#xff0c;然后拷貝到WSL環境的某個目錄&#xff0c;執行 bash xxxxxxx.sh 即可安裝。 啟動jupyter notebook&#xff1a; 先conda activate 當前環境&#xff0c;然后pip install jupyter 此時&am…

使用 SpyGlass Power Verify 解決方案中的規則

本節提供了關于使用 SpyGlass Power Verify 解決方案 的相關信息。內容組織如下: SpyGlass Power Verify 簡介運行 SpyGlass Power Verify 解決方案在 SpyGlass Power Verify 解決方案中評估結果SpyGlass Power Verify 解決方案中的參數SpyGlass Power Verify 報告1 SpyGlass …

spring4第3課-ioc控制反轉-詳解依賴注入的4種方式

1&#xff0c;屬性注入&#xff1b; 2&#xff0c;構造函數注入&#xff1b;(通過類型&#xff1b;通過索引&#xff1b;聯合使用) 3&#xff0c;工廠方法注入&#xff1b;(非靜態工廠&#xff0c;靜態工廠) 4&#xff0c;泛型依賴注入&#xff1b;(Spring4 整合 Hibernate4…

使用Rust和并發實現一個高性能的彩色分形圖案渲染

分形與 Mandelbrot Mandelbrot 集 (Mandelbrot Set) 是復數平面上一個點的集合,以數學家 Benot Mandelbrot 的名字命名。它是最著名的分形之一。一個復數 c 是否屬于 Mandelbrot 集,取決于一個簡單的迭代過程: z n + 1 = z n 2 + c z_{n+1}=z_{n}^2+c zn+1?=zn2?+c 如果…

微信小程序的軟件測試用例編寫指南及示例--性能測試用例

以下是針對微信小程序的性能測試用例補充,結合代碼邏輯和實際使用場景,從加載性能、渲染性能、資源占用、交互流暢度等維度設計測試點,并標注對應的優化方向: 一、加載性能測試用例 測試項測試工具/方法測試步驟預期結果優化方向冷啟動加載耗時微信開發者工具「性能」面板…

行為型:觀察者模式

目錄 1、核心思想 2、實現方式 2.1 模式結構 2.2 實現案例 3、優缺點分析 4、適用場景 5、注意事項 1、核心思想 目的&#xff1a;針對被觀察對象與觀察者對象之間一對多的依賴關系建立起一種行為自動觸發機制&#xff0c;當被觀察對象狀態發生變化時主動對外發起廣播&…

t009-線上代駕管理系統

項目演示地址 摘 要 使用舊方法對線上代駕管理系統的信息進行系統化管理已經不再讓人們信賴了&#xff0c;把現在的網絡信息技術運用在線上代駕管理系統的管理上面可以解決許多信息管理上面的難題&#xff0c;比如處理數據時間很長&#xff0c;數據存在錯誤不能及時糾正等問題…

LVS-NAT 負載均衡群集

目錄 簡介 一、LVS 與群集技術基礎 1.1 群集技術概述 1.2 負載均衡群集的分層結構 1.3 負載均衡工作模式 二、LVS 虛擬服務器核心組件與配置 2.1 LVS 內核模塊與管理工具 2.2 負載調度算法解析 2.3 ipvsadm 管理工具實戰 三、NFS 共享存儲服務配置 3.1 NFS 服務基礎…