<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ![關注抖音創業](https://img.kancloud.cn/c5/ce/c5ced2ea291122851697114ca415ff95_1125x1680.png)??????? [TOC] **MySQL數據庫集群** 01 拉取pxc鏡像 `docker pull percona/percona-xtradb-cluster:5.7.21 ` 02 pxc鏡像重命名 `docker tag percona/percona-xtradb-cluster:5.7.21 pxc ` 03 刪除pxc原來的鏡像 `docker rmi percona/percona-xtradb-cluster:5.7.21 ` 04 創建一個單獨的網段,給mysql數據庫集群使用 `docker network create --subnet=172.16.0.0/24 pxc-net` `docket network inspect pxc-net ` [查看詳情] 05 創建和刪除volume 創建:`docker volume create --name v1 ` 查看詳情:`docker volume inspect v1` 06 創建單個PXC容器demo `docker run -d -p 3301:3306 -v v1:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=123456 --privileged --name=node1 --net=pxc-net --ip 172.16.0.2 pxc` `CLUSTER_NAME PXC`集群名字] `XTRABACKUP_PASSWORD`數據庫同步需要用到的密碼 # 搭建PXC[MySQL]集群 ## 準備3個數據卷 ``` docker volume create --name v1 docker volume create --name v2 docker volume create --name v3 ``` ## 運行三個PXC容器 > 在創建完第一個node1,需要等待一段時間,大概1分鐘左右,等node1啟動初始化完成,才能創建node2和node3】 `docker run -d -p 3301:3306 -v v1:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=123456 --privileged --name=node1 --net=pxc-net --ip 172.18.0.2 pxc` > `CLUSTER_JOIN`將該數據庫加入到某個節點上組成集群] `docker run -d -p 3302:3306 -v v2:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=123456 -e CLUSTER_JOIN=node1 --privileged --name=node2 --net=pxc-net --ip 172.18.0.3 pxc ` `docker run -d -p 3303:3306 -v v3:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=123456 -e CLUSTER_JOIN=node1 --privileged --name=node3 --net=pxc-net --ip 172.18.0.4 pxc ` ## MySQL工具連接測試 ![](https://github.com/taot168/pmdoc/blob/master/doc/image/mysql-container.png?raw=true) # 增加負載均衡 ## 拉取haproxy鏡像 ``` docker pull haproxy ``` ## 創建haproxy配置文件,這里使用bind mounting的方式 > haproxy文檔 https://cbonte.github.io/haproxy-dconv/ > https://hub.docker.com/_/haproxy ``` touch /tmp/haproxy/haproxy.cfg ``` `haproxy.cfg` ``` global #工作目錄,這邊要和創建容器指定的目錄對應 chroot /usr/local/etc/haproxy #日志文件 log 127.0.0.1 local5 info #守護進程運行 daemon defaults log global mode http #日志格式 option httplog #日志中不記錄負載均衡的心跳檢測記錄 option dontlognull #連接超時(毫秒) timeout connect 5000 #客戶端超時(毫秒) timeout client 50000 #服務器超時(毫秒) timeout server 50000 #監控界面 listen admin_stats #監控界面的訪問的IP和端口 bind 0.0.0.0:8888 #訪問協議 mode http #URI相對地址 stats uri /dbs_monitor #統計報告格式 stats realm Global\ statistics #登陸帳戶信息 stats auth admin:admin #數據庫負載均衡 listen proxy-mysql #訪問的IP和端口,haproxy開發的端口為3306 #假如有人訪問haproxy的3306端口,則將請求轉發給下面的數據庫實例 bind 0.0.0.0:3306 #網絡協議 mode tcp #負載均衡算法(輪詢算法) #輪詢算法:roundrobin #權重算法:static-rr #最少連接算法:leastconn #請求源IP算法:source balance roundrobin #日志格式 option tcplog #在MySQL中創建一個沒有權限的haproxy用戶,密碼為空。 #Haproxy使用這個賬戶對MySQL數據庫心跳檢測 option mysql-check user haproxy server MySQL_1 172.16.0.2:3306 check weight 1 maxconn 2000 server MySQL_2 172.16.0.3:3306 check weight 1 maxconn 2000 server MySQL_3 172.16.0.4:3306 check weight 1 maxconn 2000 #使用keepalive檢測死鏈 option tcpka ``` ## 創建haproxy容器 > 因為當前centos的網絡和win使用的是橋接,所以直接端口映射到centos上即可 ``` 這樣可以直接訪問centos的IP:8888和3306 docker run -it -d -p 8888:8888 -p 3306:3306 -v /tmp/haproxy:/usr/local/etc/haproxy --name haproxy01 --privileged --net=pxc-net haproxy ``` ## 根據haproxy.cfg文件啟動haproxy ``` docker exec -it haproxy01 bash haproxy -f /usr/local/etc/haproxy/haproxy.cfg ``` ## 在MySQL數據庫上創建用戶,用于心跳檢測 ``` CREATE USER 'haproxy'@'%' IDENTIFIED BY ''; 如果創建失敗,可以先輸入一下命令 drop user 'haproxy'@'%'; flush privileges; CREATE USER 'haproxy'@'%' IDENTIFIED BY ''; ``` ## win瀏覽器訪問 ``` http://centos_ip:8888/dbs_monitor 用戶名密碼都是:admin ``` ## win上的db工具連接haproxy01 ``` ip:centos_ip port:3306 user:root password:123456 ``` ## 在haproxy連接上進行數據操作,然后查看數據庫集群各個節點 ![](https://github.com/taot168/pmdoc/blob/master/doc/image/docker/mysql-haproxy.png?raw=true)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看