欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于Docker的Mysql主備搭建的實(shí)現(xiàn)步驟

 更新時(shí)間:2022年01月28日 10:58:23   作者:tuacy  
本文主要介紹了基于Docker的Mysql主備搭建的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

Docker mysql主從配置。我們會(huì)在一臺(tái)centos的虛擬機(jī)上,配置mysql主備

前期規(guī)劃:

  • docker mysql版本 mysql:5.7
  • docker網(wǎng)絡(luò)配置,我們會(huì)創(chuàng)建名稱為mysql的網(wǎng)絡(luò),子網(wǎng)掩碼為 172.88.0.0/16
  • docker mysql主對(duì)應(yīng)的容器名稱:mysql-master, ip地址:172.88.0.11,映射端口:3307,文件卷配置(配置文件和數(shù)據(jù)文件持久化)mysql配置文件地址:/usr/local/docker/mysql/slave/conf,mysql數(shù)據(jù)文件地址:/usr/local/docker/mysql/slave/data
  • docker mysql從對(duì)應(yīng)的容器名稱:mysql-slave, ip地址: 172.88.0.12,映射端口:3308,文件卷配置(配置文件和數(shù)據(jù)文件持久化)mysql配置文件地址:/usr/local/docker/mysql/master/conf,mysql數(shù)據(jù)文件地址:/usr/local/docker/mysql/master/data

配置過程:

網(wǎng)絡(luò)創(chuàng)建(兩個(gè)mysql之間是需要通信的)

# 創(chuàng)建網(wǎng)絡(luò)mysql,子網(wǎng)掩碼172.88.0.0/16
[root@localhost conf]# docker network create mysql --subnet 172.88.0.0/16
# 查看網(wǎng)絡(luò)是否創(chuàng)建成功:有mysql則表示創(chuàng)建成功
[root@localhost conf]# docker network ls
NETWORK ID ? ? NAME ? ? ?DRIVER ? ?SCOPE
b03fab4e1371 ? bridge ? ?bridge ? ?local
0abda6b25a0e ? host ? ? ?host ? ? ?local
844e3f85e00e ? mysql ? ? bridge ? ?local
c2bbcb4013a7 ? none ? ? ?null ? ? ?local

拉取docker mysql鏡像,這里我們使用的是mysql:5.7版本

# 拉取docker鏡像,mysql:5.7版本
[root@localhost ~]# docker pull mysql:5.7

啟動(dòng)兩個(gè)mysql容器,mysql-master,mysql-slave

# 記得修改下conf的配置文件
# chmod -R 777 /usr/local/docker/mysql/master/conf
# chmod -R 777 /usr/local/docker/mysql/slave/conf
# 啟動(dòng)容器,一個(gè)對(duì)應(yīng)主,一個(gè)對(duì)應(yīng)從
# mysql master [mysql-master, 3307,172.88.0.11,/usr/local/docker/mysql/master/data,/usr/local/docker/mysql/master/conf]
[root@localhost /]# docker run --name mysql-master -p 3307:3306 -v /usr/local/docker/mysql/master/data:/var/lib/mysql -v /usr/local/docker/mysql/master/conf:/etc/mysql/ -e MYSQL_ROOT_PASSWORD=123456 -d --net mysql --ip 172.88.0.11 mysql:5.7
# mysql slave [mysql-slave, 3308,172.88.0.12,/usr/local/docker/mysql/slave/data,/usr/local/docker/mysql/slave/conf]
[root@localhost /]# docker run --name mysql-slave -p 3308:3306 -v /usr/local/docker/mysql/slave/data:/var/lib/mysql -v /usr/local/docker/mysql/slave/conf:/etc/mysql/ -e MYSQL_ROOT_PASSWORD=123456 -d --net mysql --ip 172.88.0.12 mysql:5.7

# 查看mysql-master,mysql-slave兩個(gè)容器是否正確啟動(dòng)
[root@localhost /]# docker ps
CONTAINER ID ? IMAGE ? ? ? COMMAND ? ? ? ? ? ? ? ? ?CREATED ? ? ? ? ?STATUS ? ? ? ? ?PORTS ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?NAMES
205cd234c29b ? mysql:5.7 ? "docker-entrypoint.s…" ? 9 seconds ago ? ?Up 7 seconds ? ?33060/tcp, 0.0.0.0:3308->3306/tcp, :::3308->3306/tcp ? mysql-slave
cdcc14b2b2a2 ? mysql:5.7 ? "docker-entrypoint.s…" ? 49 seconds ago ? Up 46 seconds ? 33060/tcp, 0.0.0.0:3307->3306/tcp, :::3307->3306/tcp ? mysql-master

mysql主備配置

# 修改配置文件
# mysql-master配置文件修改,因?yàn)槲覀冏隽薲ocker文件卷處理,所以我們直接在宿主機(jī)/usr/local/docker/mysql/master/conf下操作即可
[root@localhost ~]# cd /usr/local/docker/mysql/master/conf/
[root@localhost conf]# vi my.cnf?
# 在my.cnf里面輸入如下信息
[mysqld]
## 同一局域網(wǎng)內(nèi)注意要唯一
server-id=100
## 開啟二進(jìn)制日志功能,可以隨便?。P(guān)鍵)
log-bin=mysql-bin

# 進(jìn)入mysql-master容器里面重啟mysql服務(wù)
# docker exec -it mysql-master /bin/bash 進(jìn)入mysql-master容器
# service mysql restart重啟mysql服務(wù)器
# 這里有一點(diǎn)要注意,重啟mysql服務(wù)之后,mysql-master容器被關(guān)掉了,所以我們需要docker start mysql-master在啟動(dòng)下容器
[root@localhost /]# docker exec -it mysql-master /bin/bash
root@cdcc14b2b2a2:/# service mysql restart
[root@localhost /]# docker start mysql-master

# 再次進(jìn)入mysql-master容器授予slave用戶 REPLICATION SLAVE權(quán)限和REPLICATION CLIENT權(quán)限,用于在主從庫之間同步數(shù)據(jù)[slave用戶是用來做數(shù)據(jù)同步的]
# 1. CREATE USER 'slave'@'%' IDENTIFIED BY '123456';
# 2. GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';
# 3. show master status; ?查看主庫狀態(tài),請(qǐng)記住File和Position對(duì)應(yīng)的值
[root@localhost /]# docker exec -it mysql-master /bin/bash
root@205cd234c29b:/# mysql -u root -p ? ??
Enter password:?
Welcome to the MySQL monitor. ?Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.36-log MySQL Community Server (GPL)

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> CREATE USER 'slave'@'%' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.04 sec)

mysql> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';
Query OK, 0 rows affected (0.00 sec)

mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File ? ? ? ? ? ? | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000002 | ? ? ?617 | ? ? ? ? ? ? ?| ? ? ? ? ? ? ? ? ?| ? ? ? ? ? ? ? ? ? |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.01 sec)

mysql>?

# mysql-slave配置文件修改,因?yàn)槲覀冏隽薲ocker文件卷處理,所以我們直接在宿主機(jī)/usr/local/docker/mysql/slave/conf下操作即可
[root@localhost conf]# cd /usr/local/docker/mysql/slave/conf/
[root@localhost conf]# vi my.cnf?
# 在my.cnf里面輸入如下信息
[mysqld]
## 設(shè)置server_id,注意要唯一
server-id=101
## 開啟二進(jìn)制日志功能,以備Slave作為其它Slave的Master時(shí)使用
log-bin=mysql-slave-bin
## relay_log配置中繼日志
relay_log=edu-mysql-relay-bin

# 進(jìn)入mysql-slave容器里面重啟mysql服務(wù)
# docker exec -it mysql-slave /bin/bash 進(jìn)入mysql-master容器
# service mysql restart重啟mysql服務(wù)器
# 這里又一點(diǎn)要注意,重啟mysql服務(wù)之后,mysql-slave容器被關(guān)掉了,所以我們需要docker start mysql-slave在啟動(dòng)下容器
[root@localhost /]# docker exec -it mysql-slave /bin/bash
root@205cd234c29b:/# service mysql restart
[root@localhost /]# docker start mysql-slave
# 再次進(jìn)入mysql-slave容器,連上mysql-slave數(shù)據(jù)庫
[root@localhost /]# docker exec -it mysql-slave /bin/bash
[root@localhost conf]# docker exec -it mysql-slave /bin/bash
root@205cd234c29b:/# mysql -u root -p
Enter password:?
Welcome to the MySQL monitor. ?Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.36-log MySQL Community Server (GPL)

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> change master to master_host='172.88.0.11', master_port=3306, master_user='slave',master_password='123456',master_log_file='mysql-bin.000002', master_log_pos=617;
Query OK, 0 rows affected, 2 warnings (0.06 sec)

mysql> start slave;
Query OK, 0 rows affected (0.02 sec)

mysql> show slave status\G;
*************************** 1. row ***************************
? ? ? ? ? ? ? ?Slave_IO_State: Waiting for master to send event
? ? ? ? ? ? ? ? ? Master_Host: 172.88.0.11
? ? ? ? ? ? ? ? ? Master_User: slave
? ? ? ? ? ? ? ? ? Master_Port: 3306
? ? ? ? ? ? ? ? Connect_Retry: 60
? ? ? ? ? ? ? Master_Log_File: mysql-bin.000002
? ? ? ? ? Read_Master_Log_Pos: 617
? ? ? ? ? ? ? ?Relay_Log_File: edu-mysql-relay-bin.000002
? ? ? ? ? ? ? ? Relay_Log_Pos: 320
? ? ? ? Relay_Master_Log_File: mysql-bin.000002
? ? ? ? ? ? ?Slave_IO_Running: Yes
? ? ? ? ? ? Slave_SQL_Running: Yes
? ? ? ? ? ? ? Replicate_Do_DB:?
? ? ? ? ? Replicate_Ignore_DB:?
? ? ? ? ? ?Replicate_Do_Table:?
? ? ? ?Replicate_Ignore_Table:?
? ? ? Replicate_Wild_Do_Table:?
? Replicate_Wild_Ignore_Table:?
? ? ? ? ? ? ? ? ? ?Last_Errno: 0
? ? ? ? ? ? ? ? ? ?Last_Error:?
? ? ? ? ? ? ? ? ?Skip_Counter: 0
? ? ? ? ? Exec_Master_Log_Pos: 617
? ? ? ? ? ? ? Relay_Log_Space: 531
? ? ? ? ? ? ? Until_Condition: None
? ? ? ? ? ? ? ?Until_Log_File:?
? ? ? ? ? ? ? ? Until_Log_Pos: 0
? ? ? ? ? ?Master_SSL_Allowed: No
? ? ? ? ? ?Master_SSL_CA_File:?
? ? ? ? ? ?Master_SSL_CA_Path:?
? ? ? ? ? ? ? Master_SSL_Cert:?
? ? ? ? ? ? Master_SSL_Cipher:?
? ? ? ? ? ? ? ?Master_SSL_Key:?
? ? ? ? Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
? ? ? ? ? ? ? ? Last_IO_Errno: 0
? ? ? ? ? ? ? ? Last_IO_Error:?
? ? ? ? ? ? ? ?Last_SQL_Errno: 0
? ? ? ? ? ? ? ?Last_SQL_Error:?
? Replicate_Ignore_Server_Ids:?
? ? ? ? ? ? ?Master_Server_Id: 100
? ? ? ? ? ? ? ? ? Master_UUID: 46cc703d-5b0e-11ec-a43c-0242ac110002
? ? ? ? ? ? ?Master_Info_File: /var/lib/mysql/master.info
? ? ? ? ? ? ? ? ? ? SQL_Delay: 0
? ? ? ? ? SQL_Remaining_Delay: NULL
? ? ? Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
? ? ? ? ? ?Master_Retry_Count: 86400
? ? ? ? ? ? ? ? ? Master_Bind:?
? ? ? Last_IO_Error_Timestamp:?
? ? ?Last_SQL_Error_Timestamp:?
? ? ? ? ? ? ? ?Master_SSL_Crl:?
? ? ? ? ? ?Master_SSL_Crlpath:?
? ? ? ? ? ?Retrieved_Gtid_Set:?
? ? ? ? ? ? Executed_Gtid_Set:?
? ? ? ? ? ? ? ? Auto_Position: 0
? ? ? ? ?Replicate_Rewrite_DB:?
? ? ? ? ? ? ? ? ?Channel_Name:?
? ? ? ? ? ?Master_TLS_Version:?

到此這篇關(guān)于基于Docker的Mysql主備搭建的實(shí)現(xiàn)步驟的文章就介紹到這了,更多相關(guān)Docker Mysql主備搭建內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Docker私有倉庫Harbor介紹和部署方法詳解

    Docker私有倉庫Harbor介紹和部署方法詳解

    這篇文章主要介紹了Docker私有倉庫Harbor介紹和部署方法,需要的朋友可以參考下
    2022-01-01
  • 如何在docker中運(yùn)行springboot項(xiàng)目過程圖解

    如何在docker中運(yùn)行springboot項(xiàng)目過程圖解

    這篇文章主要介紹了如何在docker中運(yùn)行springboot項(xiàng)目過程圖解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Centos7上安裝docker的方法

    Centos7上安裝docker的方法

    Docker從1.13版本之后采用時(shí)間線的方式作為版本號(hào),分為社區(qū)版CE和企業(yè)版EE。這篇文章給大家介紹了Centos7上安裝docker的方法,感興趣的朋友一起看看吧
    2018-07-07
  • Docker動(dòng)態(tài)給容器Container暴露端口操作

    Docker動(dòng)態(tài)給容器Container暴露端口操作

    這篇文章主要介紹了Docker動(dòng)態(tài)給容器Container暴露端口操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • Docker網(wǎng)絡(luò)及容器通信原理詳解

    Docker網(wǎng)絡(luò)及容器通信原理詳解

    這篇文章主要介紹了Docker網(wǎng)絡(luò)及容器通信原理詳解的相關(guān)資料,并通過啟動(dòng)幾個(gè)容器來探究Docker網(wǎng)絡(luò)及容器通信,需要的朋友可以參考下
    2022-11-11
  • Docker attach 命令卡死的問題及解決方案

    Docker attach 命令卡死的問題及解決方案

    Docker 是一種輕量級(jí)的容器化平臺(tái),可以實(shí)現(xiàn)快速部署、運(yùn)行和管理應(yīng)用程序,這篇文章給大家介紹Docker attach 命令卡死的解決方案,感興趣的朋友一起看看吧
    2023-12-12
  • centos6使用docker部署kafka項(xiàng)目的方法分析

    centos6使用docker部署kafka項(xiàng)目的方法分析

    這篇文章主要介紹了centos6使用docker部署kafka項(xiàng)目的方法,結(jié)合實(shí)例形式分析了centos6環(huán)境下使用docker部署kafka項(xiàng)目的相關(guān)命令與使用技巧,需要的朋友可以參考下
    2020-02-02
  • docker部署nexus并啟用https方式

    docker部署nexus并啟用https方式

    這篇文章主要介紹了docker部署nexus并啟用https方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • docker拷貝文件到主機(jī)及導(dǎo)入導(dǎo)出容器及運(yùn)行導(dǎo)出容器方式

    docker拷貝文件到主機(jī)及導(dǎo)入導(dǎo)出容器及運(yùn)行導(dǎo)出容器方式

    這篇文章主要介紹了docker拷貝文件到主機(jī)及導(dǎo)入導(dǎo)出容器及運(yùn)行導(dǎo)出容器方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • 在 docker 之間導(dǎo)出導(dǎo)入鏡像的方法

    在 docker 之間導(dǎo)出導(dǎo)入鏡像的方法

    本篇文章主要介紹了在 docker 之間導(dǎo)出導(dǎo)入鏡像的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-07-07

最新評(píng)論