MySQL 主從配置超詳細教程

文章目錄

  • 前言
  • 一、安裝 MySQL
  • 二、主服務器(Master)配置
  • 三、從服務器(Slave)配置
  • 四、測試主從復制
  • 五、注意事項


前言

MySQL 主從配置是一種實用的數據庫架構,主服務器處理寫入操作,從服務器負責只讀操作,能提升性能、加強冗余、擴展可讀性 。下面以常見的 Linux 系統(CentOS 7 )、MySQL 8.0 版本為例,為你介紹配置步驟。


一、安裝 MySQL

MySQL8.0 超詳細安裝配置教程(附安裝包):https://blog.csdn.net/u014164303/article/details/145493332

在主服務器和從服務器上都執行以下操作:

  • 更新系統軟件包:打開終端,輸入命令sudo yum update -y ,更新系統已安裝的軟件包。
  • 安裝 MySQL 官方倉庫:執行sudo yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm ,安裝 MySQL 官方的 yum 源。
  • 安裝 MySQL 服務器:輸入sudo yum install -y mysql-server ,安裝 MySQL 服務器程序。
  • 啟動 MySQL 服務:使用sudo systemctl start mysqld ,啟動 MySQL 服務。
  • 設置開機自啟:執行sudo systemctl enable mysqld ,讓 MySQL 服務在開機時自動啟動。
    初始化 MySQL:
  • 獲取臨時密碼:通過sudo grep ‘temporary password’ /var/log/mysqld.log ,獲取初始的臨時密碼。
  • 登錄 MySQL:輸入mysql -u root -p ,然后粘貼剛才獲取的臨時密碼登錄。
  • 修改密碼:運行ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘YourNewPassword’; ,把密碼修改為自己設定的新密碼。

二、主服務器(Master)配置

  1. 編輯 MySQL 配置文件:使用命令sudo vi /etc/my.cnf 打開配置文件,添加或修改以下內容:
  • server-id = 1 :設置服務器唯一 ID,必須是正整數,且主從服務器的 ID 不能相同。
  • log-bin = mysql-bin :開啟二進制日志,用于記錄數據庫的更改操作。
  • expire-logs-days = 10 :指定二進制日志的過期時間,可按需調整。
  • max-binlog-size = 100M :設置二進制日志文件的最大大小。
  • binlog-do-db = your_database_name :指定允許復制的數據庫,可根據實際情況修改,若要復制多個數據庫,可重復此配置項。
  • 保存并退出文件后,執行sudo systemctl restart mysqld 重啟 MySQL 服務使配置生效。
  1. 創建用于復制的用戶:登錄 MySQL,執行以下命令:

CREATE USER’repl_user’@‘%’ IDENTIFIED BY ‘YourReplicationPassword’;
GRANT REPLICATION SLAVE ON . TO’repl_user’@‘%’;
FLUSH PRIVILEGES;
上述命令創建了名為repl_user的用戶,設置其密碼為YourReplicationPassword ,并賦予其主從復制相關權限,最后刷新權限。

  1. 獲取二進制日志信息:在 MySQL 中執行SHOW MASTER STATUS; ,記錄下File和Position的值,后續配置從服務器時會用到。

三、從服務器(Slave)配置

  1. 編輯 MySQL 配置文件:用sudo vi /etc/my.cnf 打開文件,添加或修改以下配置:
    server-id = 2 :設置從服務器唯一 ID,不能與主服務器及其他從服務器相同。
    保存并退出后,執行sudo systemctl restart mysqld 重啟 MySQL 服務。
  2. 配置從服務器連接主服務器:登錄 MySQL,執行以下命令配置從服務器連接主服務器:

CHANGE MASTER TO
MASTER_HOST=‘主服務器IP’,
MASTER_USER=‘repl_user’,
MASTER_PASSWORD=‘YourReplicationPassword’,
MASTER_LOG_FILE=‘主服務器二進制日志文件名’,
MASTER_LOG_POS=主服務器二進制日志位置;
var code = “084a9761-2833-438f-ab96-92c3126a4ff9”

將MASTER_LOG_FILE和MASTER_LOG_POS替換為在主服務器上執行SHOW MASTER STATUS; 時記錄的值。
3. 啟動從服務器復制進程:在 MySQL 中執行START SLAVE; ,啟動從服務器的復制進程。
4. 檢查從服務器狀態:執行SHOW SLAVE STATUS\G; ,確保Slave_IO_Running和Slave_SQL_Running的值都為Yes ,表示復制進程正常運行。

四、測試主從復制

在主服務器上創建測試數據庫和表:登錄主服務器的 MySQL,執行以下命令:

CREATE DATABASE test_db;
USE test_db;
CREATE TABLE test_table (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50));
INSERT INTO test_table (name) VALUES (‘Test Data’);

在從服務器上檢查數據復制情況:登錄從服務器的 MySQL,執行以下命令:

USE test_db;
SELECT * FROM test_table;

若能看到主服務器上插入的數據,說明主從復制配置成功。

五、注意事項

  • 網絡連接:主從服務器間需能正常通信,確保防火墻允許 MySQL 端口(默認 3306 )的流量通過。
  • 數據一致性:配置主從復制前,保證主從服務器數據一致,可通過數據備份和恢復來實現。
  • 日志管理:定期清理二進制日志文件,避免占用過多磁盤空間,可依據expire-logs-days和max-binlog-size配置管理。

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

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

相關文章

Python爬蟲實戰:獲取百度學術專題文獻數據并分析,為讀者課題研究做參考

一、引言 在信息爆炸的當下,學術研究需要大量相關資料支撐。百度學術作為重要學術資源平臺,蘊含豐富學術文獻。利用爬蟲技術獲取百度學術特定主題文章數據,能為學術研究提供全面、及時信息。本研究旨在用 Python 實現對百度學術 “主題爬蟲” 相關文章的爬取,并對數據深入…

手撕基于AMQP協議的簡易消息隊列-6(服務端模塊的編寫)

在MQServer中編寫服務端模塊代碼 在MQServer中編寫makefile文件來編譯服務端模塊 .PHONY: server CFLAG -I../ThirdLib/lib/include LFLAG -L../ThirdLib/lib/lib -lgtest -lprotobuf -lsqlite3 -pthread -lmuduo_net -lmuduo_base -lz server:server.cpp ../MQCommon/messag…

linux tar命令詳解。壓縮格式對比

1.壓縮格式對比 壓縮格式命令選項文件擴展名壓縮率速度無壓縮-cvf.tar無最快gzip-czvf.tar.gz中等較快bzip2-cjvf.tar.bz2較高較慢xz-cJvf.tar.xz最高最慢 9. 更多參考 【Linux基礎】文件壓縮tar命令指南tar壓縮方式對比

解鎖跨平臺開發的新時代——Compose Multiplatform

解鎖跨平臺開發的新時代——Compose Multiplatform 在當今移動和桌面應用程序開發領域,跨平臺解決方案是開發者們夢寐以求的工具。而由JetBrains打造的Compose Multiplatform正是這樣一款現代UI框架,它基于Kotlin技術,為開發者構建高性能且美觀的用戶界面提供了極大的便利和…

【算法學習】遞歸、搜索與回溯算法(二)

算法學習: https://blog.csdn.net/2301_80220607/category_12922080.html?spm1001.2014.3001.5482 前言: 在(一)中我們挑了幾個經典例題,已經對遞歸、搜索與回溯算法進行了初步講解,今天我們來進一步講解…

HTTP請求與緩存、頁面渲染全流程

文章目錄 前言**1. HTTP請求與緩存處理****緩存機制**? 強緩存(Cache-Control / Expires)? 協商緩存(Last-Modified / ETag) **2. 服務器響應與數據解析****3. HTML DOM 構建****4. CSSOM 構建****5. 渲染樹(Render …

限流算法學習筆記(一)Go Rate Limiter

文章目錄 1. 背景與概述1.1 什么是速率限制1.2 Go Rate Limiter 的定義與價值 2. 核心思想與設計理念2.1 令牌桶算法的基本原理2.2 惰性評估設計2.3 多種處理策略的平衡2.4 簡單易用的偶發控制 3. 架構設計與組件3.1 整體架構3.2 Limiter 組件3.3 Reservation 組件3.4 Limit 類…

n8n工作流自動化平臺的實操:生成統計圖的兩種方式

1.成果展示 1.1n8n的工作流 牽涉節點:Postgres、Code、QuickChart、Edit Fields、HTTP Request 12.顯示效果 2.實操過程 2.1節點說明 2.1.1Postgres節點: 注:將明細數據進行匯總。 2.1.2code節點: 注:將 查詢的數…

JavaScript中數組和對象不同遍歷方法的順序規則

在JavaScript中,不同遍歷方法的順序規則和適用場景存在顯著差異。以下是主要方法的遍歷順序總結: 一、數組遍歷方法 for循環 ? 嚴格按數組索引順序遍歷(0 → length-1) ? 支持break和continue中斷循環 ? 性能最優,…

緩存(1):三級緩存

三級緩存是指什么 我們常說的三級緩存如下: CPU三級緩存Spring三級緩存應用架構(JVM、分布式緩存、db)三級緩存 CPU 基本概念 CPU 的訪問速度每 18 個月就會翻 倍,相當于每年增? 60% 左右,內存的速度當然也會不斷…

Android setContentView()源碼分析

文章目錄 Android setContentView()源碼分析前提setContentView() 源碼分析總結 Android setContentView()源碼分析 前提 Activity 的生命周期與 ActivityThread 相關,調用 startActivity() 時,會調用 ActivityThread#performLaunchActivity()&#xf…

uniapp自定義步驟條(可二開進行調試)

前言 有一個業務需求是需要一個步驟條&#xff0c;但是發現開源的都不太合適&#xff0c;所以就自己寫了一個。 開始 test.vue <template><view class"authenticateRecordDetails_container"><!-- 進度 --><view class"authenticateSte…

22、近端策略優化算法(PPO)論文筆記

近端策略優化算法&#xff08;PPO&#xff09;論文筆記 一、研究背景與目標二、**方法****3.1 策略梯度基礎****3.2 信任區域方法&#xff08;TRPO&#xff09;****3.3 剪切代理目標函數&#xff08;LCLIP&#xff09;****3.4 自適應KL懲罰系數****3.5 算法實現** 三、 L CLIP…

web 自動化之 Selenium 元素定位和瀏覽器操作

文章目錄 一、元素定位的八大方法1、基于 id/name/class/tag_name 定位2、基于 a 標簽元素的鏈接文本定位3、基于xpath定位4、css定位 二、瀏覽器操作1、信息獲取2、 瀏覽器關閉3、 瀏覽器控制 一、元素定位的八大方法 web 自動化測試就是通過代碼對網頁進行測試&#xff0c;在…

前端面經 作用域和作用域鏈

含義&#xff1a;JS中變量生效的區域 分類&#xff1a;全局作用域 或者 局部作用域 局部作用域&#xff1a;函數作用域 和 塊級作用域ES6 全局作用域:在代碼中任何地方都生效 函數中定義函數中生效&#xff0c;函數結束失效 塊級作用域 使用let或const 聲明 作用域鏈:JS查…

【C/C++】RPC與線程間通信:高效設計的關鍵選擇

文章目錄 RPC與線程間通信&#xff1a;高效設計的關鍵選擇1 RPC 的核心用途2 線程間通信的常規方法3 RPC 用于線程間通信的潛在意義4 主要缺點與限制4.1 缺點列表4.2 展開 5 替代方案6 結論 RPC與線程間通信&#xff1a;高效設計的關鍵選擇 在C或分布式系統設計中&#xff0c;…

兩種方法求解最長公共子序列問題并輸出所有解

最長公共子序列&#xff08;Longest Common Subsequence, LCS&#xff09;是動態規劃領域的經典問題&#xff0c;廣泛應用于生物信息學&#xff08;如DNA序列比對&#xff09;、文本差異比對&#xff08;如Git版本控制&#xff09;等領域。本文將通過??自頂向下遞歸記憶化??…

SpringBoot應急知識學習系統開發實現

概述 一個基于SpringBoot開發的應急知識學習系統&#xff0c;該系統提供了完整的用戶注冊、登錄、知識學習與測評功能。對于開發者而言&#xff0c;這是一個值得參考的免費Java源碼項目&#xff0c;可以幫助您快速構建類似的教育平臺。 主要內容 5.2 注冊模塊的實現 系統采…

【Python 字符串】

Python 中的字符串&#xff08;str&#xff09;是用于處理文本數據的基礎類型&#xff0c;具有不可變性、豐富的內置方法和靈活的操作方式。以下是 Python 字符串的核心知識點&#xff1a; 一、基礎特性 定義方式&#xff1a; s1 單引號字符串 s2 "雙引號字符串" s…

第十六屆藍橋杯大賽軟件賽C/C++大學B組部分題解

第十六屆藍橋杯大賽軟件賽C/C大學B組題解 試題A: 移動距離 問題描述 小明初始在二維平面的原點&#xff0c;他想前往坐標(233,666)。在移動過程中&#xff0c;他只能采用以下兩種移動方式&#xff0c;并且這兩種移動方式可以交替、不限次數地使用&#xff1a; 水平向右移動…