<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          docker高級(jí)篇第一章-docker復(fù)雜安裝說明【案例mysql有問題】

          共 3971字,需瀏覽 8分鐘

           ·

          2022-12-17 14:53

          大家好,咱們前面通過十篇的文章介紹了docker的基礎(chǔ)篇,從本篇開始,咱們的《docker學(xué)習(xí)系列》將要進(jìn)入到高級(jí)篇階段(基礎(chǔ)篇大家可以查看之前發(fā)布的文章)

          咱們先來(lái)介紹:docker復(fù)雜方式安裝軟件。通過按照mysql\redis兩個(gè)案例來(lái)講解

          Docker復(fù)雜安裝說明,兩個(gè)案例:

          1:安裝mysql主從復(fù)制

          2:安裝redis集群

          本文咱們就先來(lái)實(shí)現(xiàn)第一個(gè)案例:mysql主從復(fù)制

          大家好,我是凱哥Java(kaigejava),樂于分享,每日更新技術(shù)文章,歡迎大家關(guān)注“凱哥Java”,及時(shí)了解更多。讓我們一起學(xué)Java。也歡迎大家有事沒事就來(lái)和凱哥聊聊~~~

          直通車,本系列教程已發(fā)布文章,快速到達(dá),《Docker學(xué)習(xí)系列》教程已經(jīng)發(fā)布的內(nèi)容如下:

          【圖文教程】Windows11下安裝Docker Desktop

          【填坑】在windows系統(tǒng)下安裝Docker Desktop后遷移鏡像位置

          【Docker學(xué)習(xí)系列】Docker學(xué)習(xí)1-docker安裝

          【Docker學(xué)習(xí)系列】Docker學(xué)習(xí)2-docker設(shè)置鏡像加速器

          【Docker學(xué)習(xí)系列】Docker學(xué)習(xí)3-docker的run命令干了什么?docker為什么比虛擬機(jī)快?

          【Docker學(xué)習(xí)系列】Docker學(xué)習(xí)2-常用命令之啟動(dòng)命令和鏡像命令

          【Docker學(xué)習(xí)系列】Docker學(xué)習(xí)系列3:常用命令之容器命令

          【Docker學(xué)習(xí)系列】Docker學(xué)習(xí)4-常用命令之重要的容器命令

          【Docker教程系列】Docker學(xué)習(xí)5-Docker鏡像理解

          【Docker教程系列】Docker學(xué)習(xí)6-Docker鏡像commit操作案例

          【Docker學(xué)習(xí)教程系列】7-如何將本地的Docker鏡像發(fā)布到阿里云

          【Docker學(xué)習(xí)教程系列】8-如何將本地的Docker鏡像發(fā)布到私服?

          「Docker學(xué)習(xí)系列教程」9-Docker容器數(shù)據(jù)卷介紹

          「Docker學(xué)習(xí)系列教程」10-Docker容器數(shù)據(jù)卷案例

          Docker學(xué)習(xí)11-Docker常規(guī)方式安裝軟件

          【Docker學(xué)習(xí)教程系列匯總】筆記及遇到問題解決文章


          安裝mysql主從搭建步驟:

          1:新建主服務(wù)器容器實(shí)例3307

          命令

          docker run -p 3307:3306 --name mysql-master \

          -v /mydata/mysql-master/log:/var/log/mysql \

          -v /mydata/mysql-master/data:/var/lib/mysql \

          -v /mydata/mysql-master/conf:/etc/mysql \

          -e MYSQL_ROOT_PASSWORD=root \

          -d mysql:5.7

          2:進(jìn)入/mydata/mysql-master/conf目錄下新建my.cnf

          修改配置:

          cd /mydata/mysql-master/conf

          vim my.cnf

          ## 輸入以下內(nèi)容

          [mysqld]

          ## 設(shè)置server_id,同一局域網(wǎng)中需要唯一

          server_id=101

          ## 指定不需要同步的數(shù)據(jù)庫(kù)名稱

          binlog-ignore-db=mysql  

          ## 開啟二進(jìn)制日志功能

          log-bin=mall-mysql-bin  

          ## 設(shè)置二進(jìn)制日志使用內(nèi)存大小(事務(wù))

          binlog_cache_size=1M  

          ## 設(shè)置使用的二進(jìn)制日志格式(mixed,statement,row

          binlog_format=mixed  

          ## 二進(jìn)制日志過期清理時(shí)間。默認(rèn)值為0,表示不自動(dòng)清理。

          expire_logs_days=7  

          ## 跳過主從復(fù)制中遇到的所有錯(cuò)誤或指定類型的錯(cuò)誤,避免slave端復(fù)制中斷。

          ## 如:1062錯(cuò)誤是指一些主鍵重復(fù),1032錯(cuò)誤是因?yàn)橹鲝臄?shù)據(jù)庫(kù)數(shù)據(jù)不一致

          slave_skip_errors=1062

          注意文件權(quán)限應(yīng)該是644

          3:修改完配置之后重啟master實(shí)例

          修改完mysql配置后,記得重啟實(shí)例

          docker restart mysql-master

          如果重啟失敗,查看是否因?yàn)閙y.conf文件寫錯(cuò)導(dǎo)致。

          或者查看錯(cuò)誤日志:docker logs 容器id

          修改后,重新啟動(dòng)容器。

          4:進(jìn)入mysql-master容器

          進(jìn)入到mysql-master。然后登錄mysql試試。

          在前臺(tái)顯示進(jìn)入容器:

          docker exec -it mysql-master /bin/bash

          進(jìn)入容器后,登錄mysql:

          mysql -uroot -p

          5:master容器實(shí)例內(nèi)創(chuàng)建數(shù)據(jù)同步用戶

          mysql創(chuàng)建用戶及密碼命令:

          命令模板:CREATE USER '用戶名'@'可以訪問的ip' IDENTIFIED BY '密碼'

          CREATE USER 'slave'@'%' IDENTIFIED BY '123456';

          賦權(quán)命令模板:GRANT REPLICATION 權(quán)限 on 訪問ip端口 TO '用戶名'@‘ip’

          GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'slave'@'%';

          6:新建從服務(wù)器容器實(shí)例3308

          命令:

          docker run -p 3308:3306 --name mysql-slave \

          -v /mydata/mysql-slave/log:/var/log/mysql \

          -v /mydata/mysql-slave/data:/var/lib/mysql \

          -v /mydata/mysql-slave/conf:/etc/mysql \

          -e MYSQL_ROOT_PASSWORD=root \

          -d mysql:5.7

          區(qū)別:

          1:修改了宿主機(jī)的端口映射

          2:修改了容器名稱

          3:修改了數(shù)據(jù)卷掛載的目錄

          7:進(jìn)入/mydata/mysql-slave/conf目錄下新建my.cnf

          修改配置:

          cd /mydata/mysql-slave/conf

          vim my.cnf

          ## 輸入以下內(nèi)容

          [mysqld]

          ## 設(shè)置server_id,同一局域網(wǎng)中需要唯一

          server_id=102

          ## 指定不需要同步的數(shù)據(jù)庫(kù)名稱

          binlog-ignore-db=mysql  

          ## 開啟二進(jìn)制日志功能,以備Slave作為其它數(shù)據(jù)庫(kù)實(shí)例的Master時(shí)使用

          log-bin=mall-mysql-slave1-bin  

          ## 設(shè)置二進(jìn)制日志使用內(nèi)存大小(事務(wù))

          binlog_cache_size=1M  

          ## 設(shè)置使用的二進(jìn)制日志格式(mixed,statement,row

          binlog_format=mixed  

          ## 二進(jìn)制日志過期清理時(shí)間。默認(rèn)值為0,表示不自動(dòng)清理。

          expire_logs_days=7  

          ## 跳過主從復(fù)制中遇到的所有錯(cuò)誤或指定類型的錯(cuò)誤,避免slave端復(fù)制中斷。

          ## 如:1062錯(cuò)誤是指一些主鍵重復(fù),1032錯(cuò)誤是因?yàn)橹鲝臄?shù)據(jù)庫(kù)數(shù)據(jù)不一致

          slave_skip_errors=1062  

          ## relay_log配置中繼日志

          relay_log=mall-mysql-relay-bin  

          ## log_slave_updates表示slave將復(fù)制事件寫進(jìn)自己的二進(jìn)制日志

          log_slave_updates=1  

          ## slave設(shè)置為只讀(具有super權(quán)限的用戶除外)

          read_only=1

          重新賦權(quán)

          8:修改完配置后重啟slave實(shí)例

          修改完mysql配置后,記得重啟實(shí)例

          docker restart mysql-slave

          9:在主數(shù)據(jù)庫(kù)這查看主從同步狀態(tài)

          在mysql主庫(kù)的鏡像中,進(jìn)入主mysql,然后執(zhí)行命令:

          show master status;

          10:進(jìn)入mysql-slave容器

          進(jìn)入到mysql-master。然后登錄mysql試試。

          在前臺(tái)顯示進(jìn)入容器:

          docker exec -it mysql-slave /bin/bash

          進(jìn)入容器后,登錄mysql:

          mysql -uroot -p

          11:在從數(shù)據(jù)庫(kù)中配置主從復(fù)制

          在mysql從庫(kù)的鏡像中,進(jìn)入從mysql,然后執(zhí)行命令公式:

          change master to master_host='宿主機(jī)ip', master_user='在主庫(kù)上創(chuàng)建用于主從同步的用戶賬號(hào)', master_password='在主數(shù)據(jù)庫(kù)創(chuàng)建的用于同步數(shù)據(jù)的用戶密碼', master_port=master庫(kù)的端口, master_log_file='masterlog文件名稱', master_log_pos=當(dāng)前開始點(diǎn), master_connect_retry=重試;

          公式說明:見注釋

          master_host:主數(shù)據(jù)庫(kù)的ip地址

          master_port:主數(shù)據(jù)庫(kù)的端口

          master_user:在主數(shù)據(jù)庫(kù)創(chuàng)建的用于同步數(shù)據(jù)的用戶賬號(hào)

          master_password:在主數(shù)據(jù)庫(kù)創(chuàng)建的用于同步數(shù)據(jù)的用戶的密碼

          master_log_file:指定從數(shù)據(jù)庫(kù)要復(fù)制數(shù)據(jù)的日志文件。通過查看主數(shù)據(jù)庫(kù)的狀態(tài),獲取File參數(shù);

          master_log_pos:指定從數(shù)據(jù)庫(kù)從哪個(gè)位置開始復(fù)制數(shù)據(jù),通過查看主數(shù)據(jù)的狀態(tài),獲取Position參數(shù)

          master_connect_retry:連接失敗充值的時(shí)間間隔,單位:秒

          12:在從數(shù)據(jù)庫(kù)中查看主從同步狀態(tài)

          查看主從同步第二中方法:

          show slave status \G;


          13:在從數(shù)據(jù)庫(kù)中開啟主從同步

          進(jìn)入從數(shù)據(jù)庫(kù)的mysql后,開啟主從同步:

          start slave;

          14:查看從數(shù)據(jù)庫(kù)狀態(tài)發(fā)現(xiàn)已經(jīng)同步

          15:主從復(fù)制測(cè)試

          瀏覽 64
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日日夜夜狠狠操 | 亚洲欧美内射 | 黑人大屌cao逼 | 日本三级韩国三级欧美三级 | 国产精品无码成人AV在线播放 |