最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

Docker mysql主從配置。我們會在一臺centos的虛擬機上,配置mysql主備

前期規(guī)劃:

  • docker mysql版本 mysql:5.7
  • docker網(wǎng)絡(luò)配置,我們會創(chuàng)建名稱為mysql的網(wǎng)絡(luò),子網(wǎng)掩碼為 172.88.0.0/16
  • docker mysql主對應(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從對應(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)建(兩個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

啟動兩個mysql容器,mysql-master,mysql-slave

# 記得修改下conf的配置文件
# chmod -R 777 /usr/local/docker/mysql/master/conf
# chmod -R 777 /usr/local/docker/mysql/slave/conf
# 啟動容器,一個對應(yīng)主,一個對應(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兩個容器是否正確啟動
[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配置文件修改,因為我們做了docker文件卷處理,所以我們直接在宿主機/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
## 開啟二進制日志功能,可以隨便?。P(guān)鍵)
log-bin=mysql-bin

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

# 再次進入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),請記住File和Position對應(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配置文件修改,因為我們做了docker文件卷處理,所以我們直接在宿主機/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
## 開啟二進制日志功能,以備Slave作為其它Slave的Master時使用
log-bin=mysql-slave-bin
## relay_log配置中繼日志
relay_log=edu-mysql-relay-bin

# 進入mysql-slave容器里面重啟mysql服務(wù)
# docker exec -it mysql-slave /bin/bash 進入mysql-master容器
# service mysql restart重啟mysql服務(wù)器
# 這里又一點要注意,重啟mysql服務(wù)之后,mysql-slave容器被關(guān)掉了,所以我們需要docker start mysql-slave在啟動下容器
[root@localhost /]# docker exec -it mysql-slave /bin/bash
root@205cd234c29b:/# service mysql restart
[root@localhost /]# docker start mysql-slave
# 再次進入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主備搭建的實現(xiàn)步驟的文章就介紹到這了,更多相關(guān)Docker Mysql主備搭建內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 兩種方式創(chuàng)建docker鏡像的啟動容器時區(qū)別介紹(總結(jié)篇)

    兩種方式創(chuàng)建docker鏡像的啟動容器時區(qū)別介紹(總結(jié)篇)

    這篇文章主要介紹了基于兩種創(chuàng)建docker鏡像的啟動容器時區(qū)別總結(jié),第一種凡是用docker commit生成的鏡像啟動的時候可以加載一個啟動自己應(yīng)用的腳本,第二種用Docfile文件生成的鏡像時,來啟動容器就不用再加這個腳本了,具體詳情一起通過本文學(xué)習(xí)吧
    2016-10-10
  • 如何解決docker認(rèn)證問題failed to authorize:failed to fetch oauth token

    如何解決docker認(rèn)證問題failed to authorize:failed to&n

    這篇文章主要介紹了在使用Docker構(gòu)建鏡像時遇到的認(rèn)證問題,并提供了兩種解決方案:全局代理設(shè)置和禁用BuildKit,文章還指出了一個Dockerfile中的語法錯誤,并提供了修正建議
    2025-03-03
  • docker-compose:數(shù)據(jù)卷volumes掛載規(guī)則說明

    docker-compose:數(shù)據(jù)卷volumes掛載規(guī)則說明

    這篇文章主要介紹了docker-compose:數(shù)據(jù)卷volumes掛載規(guī)則說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • docker?build與Dockerfile問題

    docker?build與Dockerfile問題

    這篇文章主要介紹了docker?build與Dockerfile問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • docker容器映射tcp或udp端口-如何通過docker-compose.yml

    docker容器映射tcp或udp端口-如何通過docker-compose.yml

    這篇文章主要介紹了docker容器映射tcp或udp端口-如何通過docker-compose.yml問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Docker集群的創(chuàng)建與管理實例詳解

    Docker集群的創(chuàng)建與管理實例詳解

    這篇文章主要介紹了Docker集群的創(chuàng)建與管理,結(jié)合實例形式詳細分析了docker集群原理、創(chuàng)建、訪問等相關(guān)操作技巧與注意事項,需要的朋友可以參考下
    2018-06-06
  • 六種Docker目錄掛載類型及注意事項總結(jié)

    六種Docker目錄掛載類型及注意事項總結(jié)

    這篇文章主要介紹了六種Docker目錄掛載方式,包括數(shù)據(jù)卷掛載、綁定掛載、臨時文件系統(tǒng)掛載、命名卷掛載、匿名卷掛載和卷驅(qū)動掛載,并詳細說明了每種掛載方式的定義、舉例和注意事項,需要的朋友可以參考下
    2025-03-03
  • 解決docker 容器設(shè)置中文語言包出現(xiàn)的問題

    解決docker 容器設(shè)置中文語言包出現(xiàn)的問題

    這篇文章主要介紹了解決docker 容器設(shè)置中文語言包出現(xiàn)的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • docker配置鏡像加速器的方法步驟

    docker配置鏡像加速器的方法步驟

    國內(nèi)常見的Docker鏡像加速器包括阿里云、網(wǎng)易云、騰訊云等,本文主要介紹了docker配置鏡像加速器的方法步驟,具有一定的參考價值,感興趣的可以了解一下
    2024-05-05
  • 利用Docker搭建Nexus私有倉庫實現(xiàn)Maven私服

    利用Docker搭建Nexus私有倉庫實現(xiàn)Maven私服

    Maven大家應(yīng)該都比較熟了,我這里就用安卓人狂喜的Gradle來演示一下,在build.gradle中編寫腳本即可上傳,接下來通過本文給大家介紹下利用Docker搭建Nexus私有倉庫實現(xiàn)Maven私服的問題,感興趣的朋友一起看看吧
    2022-01-01

最新評論

平顶山市| 青冈县| 丘北县| 丘北县| 宁陵县| 兴隆县| 内江市| 金沙县| 乌兰察布市| 会昌县| 巧家县| 安龙县| 蓝山县| 呼和浩特市| 龙州县| 宣恩县| 阿克苏市| 虹口区| 监利县| 南城县| 汉阴县| 卢湾区| 中宁县| 大理市| 濮阳县| 兰考县| 平阴县| 三原县| 商河县| 娄底市| 蒲城县| 三都| 北碚区| 万年县| 湛江市| 克拉玛依市| 垣曲县| 永州市| 乐安县| 兴国县| 贵定县|