五月综合激情婷婷六月,日韩欧美国产一区不卡,他扒开我内裤强吻我下面视频 ,无套内射无矿码免费看黄,天天躁,日日躁,狠狠躁

新聞動(dòng)態(tài)

docker實(shí)現(xiàn)mysql主從復(fù)制的示例代碼

發(fā)布日期:2021-12-12 06:45 | 文章來(lái)源:腳本之家

一、概述

1、原理

  • master服務(wù)器將數(shù)據(jù)的改變記錄二進(jìn)制binlog日志,當(dāng)master上的數(shù)據(jù)發(fā)生改變時(shí),則將其改變寫(xiě)入二進(jìn)制日志中;
  • slave服務(wù)器會(huì)在一定時(shí)間間隔內(nèi)對(duì)master二進(jìn)制日志進(jìn)行探測(cè)其是否發(fā)生改變,如果發(fā)生改變,則開(kāi)始一個(gè)I/OThread請(qǐng)求master二進(jìn)制事件
  • 同時(shí)主節(jié)點(diǎn)為每個(gè)I/O線程啟動(dòng)一個(gè)dump線程,用于向其發(fā)送二進(jìn)制事件,并保存至從節(jié)點(diǎn)本地的中繼日志中,從節(jié)點(diǎn)將啟動(dòng)SQL線程從中繼日志中讀取二進(jìn)制日志,在本地重放,使得其數(shù)據(jù)和主節(jié)點(diǎn)的保持一致,最后I/OThread和SQLThread將進(jìn)入睡眠狀態(tài),等待下一次被喚醒。

主從流程圖

2、實(shí)現(xiàn)

主庫(kù):192.168.3.13:3310從庫(kù):192.168.3.14:3310二、創(chuàng)建master主庫(kù)進(jìn)入服務(wù)器192.168.3.13

1、安裝鏡像

docker pull mysql:8.0.26

2、新建目錄

mkdir -p /home/apps/mysql-master/{config,log,data}

3、創(chuàng)建并啟動(dòng)

docker run -d --name mysql-master \
--restart=always \
--privileged=true \
-p 3310:3306 \
-v /home/apps/mysql-master/config:/etc/mysql/conf.d \
-v /home/apps/mysql-master/log:/var/log/mysql \
-v /home/apps/mysql-master/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:8.0.26

4、新增/修改master基本配置

vim /home/apps/mysql-master/config/my.cnf

添加以下內(nèi)容

[client]
default-character-set=utf8
 
[mysql]
default-character-set=utf8
 
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

三、創(chuàng)建Slave實(shí)例

進(jìn)入服務(wù)器192.168.3.14

1、同上面操作一樣

# 創(chuàng)建目錄
mkdir -p /home/apps/mysql-slave-01/{config,log,data}
# 啟動(dòng)容器
docker run -d --name mysql-slave-01 \
--restart=always \
--privileged=true \
-p 3310:3306 \
-v /home/apps/mysql-slave-01/config:/etc/mysql/conf.d \
-v /home/apps/mysql-slave-01/log:/var/log/mysql \
-v /home/apps/mysql-slave-01/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:8.0.26

# 修改Slave基本配置
vim /home/apps/mysql-slave-01/config/my.cnf
# 添加以下內(nèi)容
[client]
default-character-set=utf8
 
[mysql]
default-character-set=utf8
 
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

四、主從配置

1、添加master配置

vim /home/apps/mysql-master/config/my.cnf
server_id=1
# 開(kāi)啟二進(jìn)制日志
log-bin=mysql-bin
read-only=0
# 需要同步的數(shù)據(jù)庫(kù)
binlog-do-db=rapid-cloud
binlog-do-db=rapid-cloud-test
# 需要忽略的數(shù)據(jù)庫(kù)
replicate-ignore-db=mysql
replicate-ignore-db=sys
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema

2、重啟容器

docker restart mysql-master

3、添加Slave配置

vim /home/apps/mysql-slave-01/config/my.cnf
server_id=2
log-bin=mysql-bin
read-only=1
binlog-do-db=rapid-cloud
binlog-do-db=rapid-cloud-test
replicate-ignore-db=mysql
replicate-ignore-db=sys
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema

4、重啟容器

docker restart mysql-slave-01

5、master添加帳號(hào),用來(lái)同步的用戶

# 進(jìn)入容器
docker exec -it mysql-master /bin/bash
# 進(jìn)入主庫(kù)mysql數(shù)據(jù)庫(kù)
mysql -u root -p
# 授權(quán)root可以遠(yuǎn)程訪問(wèn)( 主從無(wú)關(guān),為了方便我們遠(yuǎn)程連接mysql)
# 授權(quán)遠(yuǎn)程
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
# 刷新
flush privileges;

# 創(chuàng)建backup用戶
# 應(yīng)先創(chuàng)建新用戶
create user 'backup'@'%' identified by '123456';
# 執(zhí)行授權(quán)
grant all privileges on *.* to 'backup'@'%';
# 刷新
flush privileges;
# 授權(quán)遠(yuǎn)程
ALTER USER 'backup'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
# 刷新
flush privileges;
# 查看主庫(kù)狀態(tài)
show master status;

6、在從庫(kù)里設(shè)置主庫(kù)連接

# 進(jìn)入容器
docker exec -it mysql-slave-01 /bin/bash
# 進(jìn)入主庫(kù)mysql數(shù)據(jù)庫(kù)
mysql -u root -p
change master to master_host='192.168.3.13',master_user='backup',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=0,master_port=3310;

7、啟動(dòng)從庫(kù)同步

先將主庫(kù)的數(shù)據(jù)復(fù)制一份到從庫(kù),包含表結(jié)構(gòu)及數(shù)據(jù)

將主庫(kù)binlog清除一下,這樣它的位置就從0開(kāi)始了

purge master logs to'mysql-bin.000001';

開(kāi)啟同步

# 開(kāi)始同步
start slave;
# 停止同步
# stop slave;
# 查看同步狀態(tài)
show slave status\G;

8、錯(cuò)誤排查

如果無(wú)法實(shí)現(xiàn)主從同步,可以通過(guò)以下排查

總結(jié):

主從數(shù)據(jù)庫(kù)在自己配置文件中聲明需要同步哪個(gè)數(shù)據(jù)庫(kù),忽略哪個(gè)數(shù)據(jù)庫(kù)等信息。并且server-id不能一樣主庫(kù)授權(quán)某個(gè)賬號(hào)密碼來(lái)同步自己的數(shù)據(jù)從庫(kù)使用這個(gè)賬號(hào)密碼連接主庫(kù)來(lái)同步數(shù)據(jù)

五、參考

https://www.cnblogs.com/heian99/p/12104189.html

https://blog.csdn.net/lilygg/article/details/98187015

binlog清除:https://www.cnblogs.com/kiko2014551511/p/11532426.html

到此這篇關(guān)于docker實(shí)現(xiàn)mysql主從復(fù)制的示例代碼的文章就介紹到這了,更多相關(guān)docker mysql主從復(fù)制內(nèi)容請(qǐng)搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!

版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實(shí)時(shí)開(kāi)通

自選配置、實(shí)時(shí)開(kāi)通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專(zhuān)屬顧問(wèn)服務(wù)

1對(duì)1客戶咨詢(xún)顧問(wèn)

在線
客服

在線客服:7*24小時(shí)在線

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部