欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Docker中怎么實現(xiàn)MySQL主主復制

Docker 中怎么實現(xiàn)MySQL主主復制,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

成都創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供龍沙網(wǎng)站建設、龍沙做網(wǎng)站、龍沙網(wǎng)站設計、龍沙網(wǎng)站制作等企業(yè)網(wǎng)站建設、網(wǎng)頁設計與制作、龍沙企業(yè)網(wǎng)站模板建站服務,十載龍沙做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡服務。

安裝Docker

  1. Install Docker Engine on CentOS

MySQL配置

  1. Master

  • 新建目錄data(XXXX/master/data),映射docker數(shù)據(jù)庫目錄

  • 新建配置(XXXX/master/my.cnf)

[mysqld]
skip-host-cache
skip-name-resolve
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
secure-file-priv=/var/lib/mysql-files
user=mysql

pid-file=/var/run/mysqld/mysqld.pid

# replication 
# server id 唯一
server_id=1
# STATEMENT, ROW, or MIXED
binlog_format=ROW
log_bin=/var/lib/mysql/master-bin
auto-increment-increment=2
auto-increment-offset=1
slave-skip-errors=all

# 不進行復制的數(shù)據(jù)庫
replicate-ignore-db=information_schema
replicate-ignore-db=mysql
replicate-ignore-db=performance_schema
replicate-ignore-db=sys
  1. Replica

  • 新建目錄data(XXXX/rep/data),映射docker數(shù)據(jù)庫目錄

  • 新建配置(XXXX/rep/my.cnf)

[mysqld]
skip-host-cache
skip-name-resolve
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
secure-file-priv=/var/lib/mysql-files
user=mysql

pid-file=/var/run/mysqld/mysqld.pid

# replication
# server id 唯一
server_id=2
# STATEMENT, ROW, or MIXED
binlog_format=ROW
log_bin=/var/lib/mysql/rep-bin
auto-increment-increment=2
auto-increment-offset=1
slave-skip-errors=all

# 不進行復制的數(shù)據(jù)庫
replicate-ignore-db=information_schema
replicate-ignore-db=mysql
replicate-ignore-db=performance_schema
replicate-ignore-db=sys

新增Bridge類型網(wǎng)絡

docker network create mysql_net
  • mysql服務連接到新增的網(wǎng)絡mysql_net

  • mysql服務可以通過主機名互相訪問

啟動MySQL服務

  1. Master

docker container run --name mysql_master \
    --network mysql_net \
    --hostname mysql_master \
    --publish 33306:3306 \
    --env MYSQL_ROOT_PASSWORD=123456 \
    --mount type=bind,src=/xxxx/master/my.cnf,dst=/etc/my.cnf \
    --mount type=bind,src=/xxxx/master/data,dst=/var/lib/mysql \
    -d mysql/mysql-server:8.0 --character-set-server=utf8 --collation-server=utf8_general_ci --explicit_defaults_for_timestamp
  1. Replica

docker container run --name mysql_rep \
    --network mysql_net \
    --hostname mysql_rep \
    --publish 43306:3306 \
    --env MYSQL_ROOT_PASSWORD=123456 \
    --mount type=bind,src=/xxx/repl/my.cnf,dst=/etc/my.cnf \
    --mount type=bind,src=/xxx/repl/data,dst=/var/lib/mysql \
    -d mysql/mysql-server:8.0 --character-set-server=utf8 --collation-server=utf8_general_ci --explicit_defaults_for_timestamp
  1. 參數(shù)說明

  • XXX:替換為有效的路徑

  • network:指定為新增的網(wǎng)絡mysql_net

  • hostname:服務主機名

  • publish:端口映射([docker host Port]:[container Port])

  • MYSQL_ROOT_PASSWORD: MySQL默認密碼

  • mount:掛載配置文件及數(shù)據(jù)庫文件目錄

  1. 查看MySQL服務是否正常啟動

# 查看Docker container進程
docker container ps -a | grep mysql

# 查看啟動日志
docker container logs mysql_master
docker container logs mysql_rep

數(shù)據(jù)庫配置

  1. 新增具復制權限的用戶

  • 登錄主數(shù)據(jù)庫

# 登入 mysql_master
docker container exec -it mysql_master bash

# 連接數(shù)據(jù)庫,密碼為配置文件中指定的123456
mysql -u root -p

# 新增復制用戶并賦復制權限
CREATE USER 'dev'@'%' IDENTIFIED BY '123456';
GRANT ALL ON *.* TO 'dev'@'%';
  • 登錄備數(shù)據(jù)庫

# 登入 mysql_rep
docker container exec -it mysql_rep bash

# 連接數(shù)據(jù)庫,密碼為配置文件中指定的123456
mysql -u root -p

# 新增復制用戶并賦復制權限
CREATE USER 'dev'@'%' IDENTIFIED BY '123456';
GRANT ALL ON *.* TO 'dev'@'%';
  1. 分別查看主從服務數(shù)據(jù)庫狀態(tài)

# 主數(shù)據(jù)庫
mysql> SHOW MASTER STATUS;
+-------------------+----------+--------------+------------------+-------------------+
| File              | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-------------------+----------+--------------+------------------+-------------------+
| master-bin.000005 |      445 |              |                  |                   |
+-------------------+----------+--------------+------------------+-------------------+

# 備數(shù)據(jù)庫
mysql> SHOW MASTER STATUS;
+----------------+----------+--------------+------------------+-------------------+
| File           | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+----------------+----------+--------------+------------------+-------------------+
| rep-bin.000002 |      155 |              |                  |                   |
+----------------+----------+--------------+------------------+-------------------+
  1. 配置數(shù)據(jù)庫復制

  • 配置備數(shù)據(jù)庫mysql_rep

# MASTER_HOST:主數(shù)據(jù)庫服務名
# MASTER_LOG_FILE: 日志文件名稱
# MASTER_LOG_POS:  日志文件當前位置

mysql> CHANGE MASTER TO
    MASTER_HOST='mysql_master',
    MASTER_USER='dev',
    MASTER_PASSWORD='123456',
    MASTER_LOG_FILE='master-bin.000003',
    MASTER_LOG_POS=692;
  • 配置主數(shù)據(jù)庫mysql_master

# MASTER_HOST:     從數(shù)據(jù)庫服務名
# MASTER_LOG_FILE: 日志文件名稱
# MASTER_LOG_POS:  日志文件當前位置

mysql> CHANGE MASTER TO
    MASTER_HOST='mysql_rep',
    MASTER_USER='dev',
    MASTER_PASSWORD='123456',
    MASTER_LOG_FILE='rep-bin.000001',
    MASTER_LOG_POS=155;
  1. 啟動復制

  • 備數(shù)據(jù)庫

mysql> start slave;
  • 主數(shù)據(jù)庫

mysql> start slave;
  1. 查看數(shù)據(jù)庫狀態(tài)

mysql> show master status;
mysql> show slave status;

看完上述內(nèi)容,你們掌握Docker 中怎么實現(xiàn)MySQL主主復制的方法了嗎?如果還想學到更多技能或想了解更多相關內(nèi)容,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

當前文章:Docker中怎么實現(xiàn)MySQL主主復制
新聞來源:http://chinadenli.net/article30/gioeso.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、網(wǎng)頁設計公司、域名注冊、云服務器、網(wǎng)站策劃、用戶體驗

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設