一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

云服務器|WEB服務器|FTP服務器|郵件服務器|虛擬主機|服務器安全|DNS服務器|服務器知識|Nginx|IIS|Tomcat|

服務器之家 - 服務器技術 - 服務器知識 - Docker部署MySQL8集群(一主二從)的實現步驟

Docker部署MySQL8集群(一主二從)的實現步驟

2021-08-07 23:55張紅塵 服務器知識

本文主要介紹了Docker部署MySQL8集群,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

一.CentOS7.9安裝Docker20

1.安裝yum-utils工具

  1. yum install -y yum-utils

2.設置docker的依賴源

  1. yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

注釋:CentOS直接使用yum命令安裝的Docker版本為1.13.1屬于舊版docker的最后一個版本,所以需要配置一個repo,才能安裝新版的Docker-CE(社區版)。Docker-EE(企業版)需收費讀者自行了解即可,這里使用CE社區版

3.安裝docker

  1. yum -y install docker-ce

4.查看安裝的版本

  1. docker -v
  2. docker version

Docker部署MySQL8集群(一主二從)的實現步驟

5. 查看配套設置的版本

  1. yum list installed | grep docker

Docker部署MySQL8集群(一主二從)的實現步驟

6.拉取MySQL8鏡像

  1. docker pull mysql:8

注解:mysql:5.7代表mysql版本為5.7

查看docker鏡像

  1. docker images

Docker部署MySQL8集群(一主二從)的實現步驟

二.部署MySQL集群(一主二從)

1.創建主從MySQL的配置及數據文件的存儲目錄

  1. # 創建主服務的配置目錄和數據目錄
  2. mkdir -p /usr/local/mysqlData/master/cnf
  3. mkdir -p /usr/local/mysqlData/master/data
  4.  
  5. # 創建1號從服務器的配置目錄和數據目錄
  6. mkdir -p /usr/local/mysqlData/slave/cnf
  7. mkdir -p /usr/local/mysqlData/slave/data
  8.  
  9. # 創建2號從服務器的配置目錄和數據目錄
  10. mkdir -p /usr/local/mysqlData/slave2/cnf
  11. mkdir -p /usr/local/mysqlData/slave2/data

創建兩個從服務器的配置是因為MySQL配置的server-id不能重復

Docker部署MySQL8集群(一主二從)的實現步驟

2.配置主服務器的配置文件

  1. vim /usr/local/mysqlData/master/cnf/mysql.cnf

配置文件如下

  1. [mysqld]
  2. ## 設置server_id,注意要唯一
  3. server-id=1
  4. ## 開啟binlog
  5. log-bin=mysql-bin
  6. ## binlog緩存
  7. binlog_cache_size=1M
  8. ## binlog格式(mixed、statement、row,默認格式是statement)
  9. binlog_format=mixed
  10. ##設置字符編碼為utf8mb4
  11. character-set-server = utf8mb4
  12. collation-server = utf8mb4_unicode_ci
  13. init_connect='SET NAMES utf8mb4'
  14. [client]
  15. default-character-set = utf8mb4
  16. [mysql]
  17. default-character-set = utf8mb4

3.配置從服務器的配置文件

  1. # 1號從服務器
  2. vim /usr/local/mysqlData/slave/cnf/mysql.cnf
  3. # 2號從服務器
  4. vim /usr/local/mysqlData/slave2/cnf/mysql.cnf

配置文件如下(1號的server-id設置為2,2號的server-id設置為3,不重復即可)

  1. [mysqld]
  2. ## 設置server_id,注意要唯一
  3. server-id=2
  4. ## 開啟binlog
  5. log-bin=mysql-slave-bin
  6. ## relay_log配置中繼日志
  7. relay_log=edu-mysql-relay-bin
  8. ## 如果需要同步函數或者存儲過程
  9. log_bin_trust_function_creators=true
  10. ## binlog緩存
  11. binlog_cache_size=1M
  12. ## binlog格式(mixed、statement、row,默認格式是statement)
  13. binlog_format=mixed
  14. ##設置字符編碼為utf8mb4
  15. character-set-server = utf8mb4
  16. collation-server = utf8mb4_unicode_ci
  17. init_connect='SET NAMES utf8mb4'
  18. slave_skip_errors=1062
  19. [client]
  20. default-character-set = utf8mb4
  21. [mysql]
  22. default-character-set = utf8mb4

4.創建主從MySQL鏡像

  1. # 主服務器實例化
  2. docker run -itd -p 3307:3306 --name master -v /usr/local/mysqlData/master/cnf:/etc/mysql/conf.d -v /usr/local/mysqlData/master/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:8
  3.  
  4. # 1號從服務器實例化
  5. docker run -itd -p 3308:3306 --name slaver -v /usr/local/mysqlData/slave/cnf:/etc/mysql/conf.d -v /usr/local/mysqlData/slave/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:8
  6.  
  7. # 2號從服務器實例化
  8. docker run -itd -p 3309:3306 --name slaver2 -v /usr/local/mysqlData/slave2/cnf:/etc/mysql/conf.d -v /usr/local/mysqlData/slave2/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:8

參數解釋

-p 指定容器暴露的端口,宿主機(物理機)端口: docker實例端口
-p 3307:3306 把物理機的3307端口給實例的端口3306端口進行映射

-v 給容器掛載存儲卷,掛載到容器的某個目錄
-v /usr/local/mysqlData/master/cnf:/etc/mysql/conf.d 把剛創建的配置文件夾映射成實例的/etc/mysql/conf.d
-v /usr/local/mysqlData/master/data:/var/lib/mysql 數據文件夾的映射

-e 指定環境變量,容器中可以使用該環境變量
-e MYSQL_ROOT_PASSWORD=123456 設置MySQL的root賬號密碼為123456

5.查看已創建的實例

  1. docker ps -a

Docker部署MySQL8集群(一主二從)的實現步驟

6.創建mysql連接用戶

  1. # 創建用戶 reader設置密碼為reader
  2. CREATE USER reader IDENTIFIED BY 'reader';
  3. # 給予reader同步權限
  4. GRANT REPLICATION SLAVE ON *.* to 'reader'@'%';
  5. FLUSH PRIVILEGES;

注解:其余的用戶,遠程連接的自行設置

7.獲取主服務器的連接信息

  1. # MySQL的連接信息
  2. SHOW MASTER STATUS;
  3.  
  4. #新開連接 獲取master實例的在docker的地址
  5. docker inspect --format='{{.NetworkSettings.IPAddress}}' master

Docker部署MySQL8集群(一主二從)的實現步驟

從服務器連接主服務器(兩臺從服務器均是以下操作)

  1. # 配置連接的參數
  2. change master to master_host='172.17.0.2',master_user='reader',master_password='reader',master_log_file='mysql-bin.000003',master_log_pos=2259;
  3. # 啟動同步
  4. start slave;
  5. # 查看是否成功
  6. show slave status\G
  7.  
  8. # 兩項都為Yes時代表成功。
  9. # Slave_IO_Running: Yes
  10. # Slave_SQL_Running: Yes
  11.  
  12. # 失敗需要使用停止連接后檢查其他賬號密碼,地址,pos等參數
  13.  
  14. # 停止連接,如果一次成功無需使用該命令
  15. stop slave;

Docker部署MySQL8集群(一主二從)的實現步驟

三.結果

主服務器執行命令

  1. SHOW SLAVE HOSTS;

Docker部署MySQL8集群(一主二從)的實現步驟

能從主服務器查詢到兩臺從服務器的ID以及端口。完成MySQL部署。

到此這篇關于Docker部署MySQL8集群(一主二從)的實現步驟的文章就介紹到這了,更多相關Docker部署MySQL8集群內容請搜索我們以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持我們!

原文鏈接:https://blog.csdn.net/qq_37181910/article/details/118905118

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 性欧美videofree中文字幕 | 青青青视频蜜桃一区二区 | 香蕉久久久久久狠狠色 | 亚洲午夜精品久久久久 | 都市后宫小说 | 天天白天天谢天天啦 | 福利入口在线观看 | 亚洲香蕉伊在人在线观看9 亚洲系列国产系列 | 美女林柏欣21p人体之仓之梦 | 毛片的网站 | 日本深夜影院 | 午夜电影三级还珠格格 | a男人天堂 | 青青青国产手机在线播放 | 国产好痛疼轻点好爽的视频 | 色综合九九 | 91精品啪在线观看国产91九色 | 国产男女性特黄录像 | 饭冈加奈子在线播放观看 | 奇米影视在线视频 | 国产成人99久久亚洲综合精品 | 欧美特级午夜一区二区三区 | 欧美黑人一级片 | 日本视频在线免费看 | 网www天堂资源在线 王淑兰与铁柱全文免费阅读 | 全色黄大色黄大片爽一次 | 草逼视频免费看 | 日本黄色大片网站 | 精品一区二区三区在线视频观看 | 日韩久久精品 | 亚洲精品私拍国产福利在线 | www.av色| 视频一区国产精戏刘婷30 | 亚洲高清在线天堂精品 | 87影院在线观看视频在线观看 | 四虎影在线永久免费观看 | 国产亚洲精aa在线观看不卡 | 视频一区国产精戏刘婷30 | 波多野结衣52部合集在线观看 | 亚瑟天堂久久一区二区影院 | 欧美久久热 |