日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

史上最详细Docker部署Mysql主从复制,带每一步骤图!!!

發布時間:2025/3/19 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 史上最详细Docker部署Mysql主从复制,带每一步骤图!!! 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

沒有夸大標題哈,能夠成功的,實測后發文
本文主要講怎么用Docker部署Mysql的主從復制,看起來很長,實際非常簡單的,看一遍,立馬就能懂的。

直接CV也能搭建起來,莫慌。

我們一起加油!!!


地點:泰山日出

一、拉取鏡像

docker pull mysql:5.7

相關命令:

  • 查看鏡像:docker images

二、啟動鏡像

先啟動mysql01容器:(即之后的主機)

docker run -d -p 3310:3306 -v /home/mysql/node-1/config:/etc/mysql/ -v/home/mysql/node-1/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7

再啟動mysql02容器:(即之后的從機)

docker run -d -p 3311:3306 -v /home/mysql/node-2/config:/etc/mysql/ -v/home/mysql/node-2/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql02 mysql:5.7

命令解釋:

  • -d: 后臺運行容器,并返回容器ID
  • -p 3311:3306 :將容器的3306端口映射到宿主機3310端口
  • -e MYSQL_ROOT_PASSWORD=123456 :配置數據庫連接密碼
  • -v /home/mysql/node-2/config:/etc/mysql/ :將配置文件夾掛載到宿主機
  • –name mysql01(02):將容器命名為 mysql01(02)

相關命令:

docker ps -a #查看全部容器(運行中加未運行的)

都已正常啟動。

三、連接測試

搭建過程中,為了減少錯誤的產生,就多了這一步的測試。

我們可以直接拿Navicat來進行連接測試。

注意事項: 記得打開安全組,虛擬機的話記得處理好防火墻。(另外我這里是3310,可根據自己需要更改端口)

測試啟動成功后,我們再來進行下一步。


四、編寫主從復制配置文件

之前我們啟動的時候寫了這句-v /home/mysql/node-1/config:/etc/mysql/,將mysql 的配置文件夾和宿主機的文件夾掛載起來的。

那么我們就可以直接在宿主機下的/home/mysql/node-1/config/編寫配置文件了。

4.1、編寫主機配置文件

我們先編寫主機上的配置文件:

vim my.cnf

回車之后是這樣的:

先按insert鍵,然后直接將下面主機的配置文件復制上去即可:

[mysqld] #修改配置文件:vim /etc/my.cnf #主服務器唯一ID server-id=1 #啟用二進制日志 log-bin=mysql-bin # 設置不要復制的數據庫(可設置多個) binlog-ignore-db=mysql binlog-ignore-db=information_schema #設置需要復制的數據庫 需要復制的主數據庫名字 binlog-do-db=testdb #設置logbin格式 binlog_format=STATEMENT

退出方式

先按Esc鍵–>再按Shift+:鍵–>輸入wq–保存退出。

4.2、編寫從機配置文件

從機上的my.cnf也是同樣的方式

[mysqld] #從服務器唯一ID server-id=2 #啟用中繼日志 relay-log=mysql-relay

重新啟動mysql容器

docker restart mysql01 mysql02

docker ps -a #查看容器

接下來就是搭建主從復制了。

五、搭建主從復制

5.1、主機設置

docker exec -it mysql01 /bin/bash #進入容器 mysql -uroot -p123456 #連接mysql

5.2、主機上建立帳戶并授權 slave

給從機授權,為了讓從機能夠和主機連接起來。

GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY '123456';

5.3、查詢master狀態

show master status; #查詢master的狀態

把這里的File和Position記下來哈,等下在從機上要用到。

File: mysql-bin.000003 Position: 438

Binlog_Do_DB:需要復制的數據庫。

Binlog_Ignore_DB:不需要復制的數據庫。

注意:此步驟后不要再操作主服務器MySQL,防止主服務器狀態值變化

5.4、從機設置

進入mysql02容器

docker exec -it mysql02 /bin/bash mysql -uroot -p123456

復制主機的命令

CHANGE MASTER TO MASTER_HOST='主機的ip地址', MASTER_USER='slave', MASTER_PASSWORD='123456', MASTER_PORT=3310, MASTER_LOG_FILE='mysql-bin.000003',MASTER_LOG_POS=438; #解釋: # CHANGE MASTER TO MASTER_HOST='主機的IP地址', # MASTER_USER='slave'(剛剛配置的用戶名), # MASTER_PASSWORD='123456'(剛剛授權的密碼), # master_port=主機開放的端口 我這里是3310端口, # MASTER_LOG_FILE='mysql-bin.具體數字',MASTER_LOG_POS=具體值(之前的Position);

注意事項:如果在這里出現錯誤,先重置。執行完下面兩條命令。

stop slave; reset master;

啟動從服務器復制功能

start slave;

查看從服務器狀態

show slave status\G

#下面兩個參數都是Yes,則說明主從配置成功!

Slave_IO_Running: Yes Slave_SQL_Running: Yes

六、測試主從復制

6.1、主機新建庫 -從機復制

在主機新建testdb后,從機也隨之就有了。(這里的命名是確定的,因為在配置文件中說明了復制testdb數據庫)。

6.1、新建表-從機復制

6.3、insert 記錄-從機復制


當然這些還是有看不出到底有沒有復制的話,咱們直接測試函數,就能知道啦。

insert into my_table01(id,name) VALUE(1,@@hostname);

這就可以看出主從復制確實是成功的,但是在使用函數上有數據不一致的問題。

七、重置配置主從

如何停止從服務復制功能

stop slave;

如何重新配置主從 (即清除之前的主從配置)

stop slave; reset master;

八、自言自語

下一篇打算講一下mysql的中間件mycat實現讀寫分離,或者說點理論😀,咱們一步一步來哈😁。

你好,我是博主寧在春,Java學習路上的一顆小小的種子,也希望有一天能扎根長成蒼天大樹。

最近在持續更新中,如果你覺得文章對你有所幫助,也感興趣的話,關注我吧。

讓我們一起學習,一起討論吧。

希望與君共勉😁

我們:待別時相見時,都已有所成

總結

以上是生活随笔為你收集整理的史上最详细Docker部署Mysql主从复制,带每一步骤图!!!的全部內容,希望文章能夠幫你解決所遇到的問題。

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