日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 命令行 主从复制_MySQL 的主从复制(高级篇)

發布時間:2023/12/10 数据库 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 命令行 主从复制_MySQL 的主从复制(高级篇) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先要明白為什么要用 mysql 的主從復制:

1–在從服務器可以執行查詢工作 (即我們常說的讀功能),降低主服務器壓力;(主庫寫,從庫讀,降壓)

2–在從主服務器進行備份,避免備份期間影響主服務器服務;(確保數據安全)

3–當主服務器出現問題時,可以切換到從服務器。(提升性能)

來說一下主從復制的實現原理

mysql 復制過程分為三步(如上圖所示):

1.mster 將改變記錄到二進制日志 (binary log) 當中 這些記錄過程叫做二進制日志事件 binary log events;

2.slave 將 master 的 binary log events 拷貝到它的中繼日志 (relay log) 當中;

3.slave 重做中繼日志中的事件 將改變應用到自己的數據庫當中 mysql 復制是異步的且串行化的 3.slave 重做中繼日志中的事件 將改變應用到自己的數據庫當中 mysql 復制是異步的且串行化的

復制的最大問題:

從主機復制數據達到從機可能會有延時!

都說 master 主機和 slave 從機的 mysql 版本號要一致 我就沒一致

master 主機上是 5.6 slave 從機上是 5.7 一樣搞

拿過來一臺服務器你不得先找 mysql 嗎?mysql 在哪里 配置文件在哪里?

執行命令:

which mysql

/usr/bin/mysql --verbose --help | grep -A 1 'Default options'

結果如圖所示:

先去找 /etc/my.cnf 再去找 /etc/mysql/my.cnf 然后就是后邊

我的是在 /etc/my.cnf

修改 my.cnf 配置文件如下:

重啟 mysql 服務器執行命令:

service mysqld restart;

解釋:

server-id=1 // 復制組中的每臺服務器都要配置唯一的 Server ID,取值范圍是 1 到 (232)?1,你自己決定取值

log-bin=master-bin // 日志文件名以 “master-bin” 作為前綴

binlog-do-db=finance_online // 要同步的 finance_online 數據庫

如要同步多個數據庫,就多加幾個 replicate-db-db = 數據庫名

binlog-ignore-db=mysql // 要忽略的數據庫

read-only // 主機 讀寫都可以 (必須)

登錄上 mysql 然后執行:

show master status;

結果如下:

記住里面的 File 和 Position 的值 待會會用到!

在主數據中創建一個同步賬號(可不創建使用現有的),如果僅僅為了主從復制創建賬號,只需要授予 REPLICATION SLAVE 權限

創建一個賬號,賬號:zcfz 密碼: 123456

這個賬號是專門用來搞主從復制用的哈

上述 主服務器配置完成

slave 從服務器配置開始:

重啟 mysql 服務器:

service mysqld restart;

進入到 slave 從機的 mysql 命令行執行命令:

stop slave;

CHANGE MASTER TO MASTER_HOST='10.10.20.120',

MASTER_USER='zcfz',

MASTER_PASSWORD='123456',

MASTER_LOG_FILE='master-bin.000005',

MASTER_LOG_POS=3878614;

解釋:

MASTER_HOST 就是 master 主服務器的 ip

MASTER_USER 就是 master 主服務器里面的專門復制復制的用戶 zcfz

MASTER_PASSWORD 就是 zcfz 賬戶的密碼

MASTER_LOG_FILE 就是我們上邊讓您保存的 file 對應的值

MASTER_LOG_POS 就是我們上邊讓您保存的 Position 的值

然后執行命令:

show slave status\G

結果如圖所示:

wating for master to send evnet 說明已經在待命狀態了

另外必須注意的是 slave_io_runing 以及 slave_sql_runing 都同時必須為 yes 才行!!!

截止到此刻說明主從復制的道路打通了!

然后執行命令:

start slave;

驗證階段:

執行命令創建數據庫:

CREATE DATABASE finance_online DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

這個時候 master 和 slave 上都有了數據庫

然后你再導入數據到 master 主機上的 finance_online 那么 slave 從機上也就有了然后你再導入數據到 master 主機上的 finance_online 那么 slave 從機上也就有了

另外如果你不想復制這個庫了 想換一個

那么去修改 master 主機上的 my.cnf 當中的 binlog-do-db=tprbac 然后重啟 mysql 服務

然后 show master status 看看 file 和 positon

然后再去 linux 服務器上停止 slave 在 mysql 當中執行 stop slave;

然后再執行:

CHANGE MASTER TO MASTER_HOST=’10.10.20.120’,

MASTER_USER=’zcfz’,

MASTER_PASSWORD=’123456’,

MASTER_LOG_FILE=‘你看到的 file’,

MASTER_LOG_POS = 你看到的 positon;

然后在 start slave;

就完事了!

這樣就會主從復制你想要復制的數據庫了!!!

總結

以上是生活随笔為你收集整理的mysql 命令行 主从复制_MySQL 的主从复制(高级篇)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。