亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Docker上部署mysql8主從復(fù)制的實(shí)現(xiàn)

 更新時(shí)間:2022年08月02日 10:29:58   作者:m0_67392409  
本文主要介紹了Docker上部署mysql8主從復(fù)制的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

環(huán)境準(zhǔn)備

需要一個(gè) MySQL8 版本的 MySQL,因?yàn)槲覀€(gè)人沒(méi)有用過(guò) mysql5,不知道二者是否會(huì)有一些特性上的偏差。

默認(rèn)你與我的環(huán)境是一樣的。

簡(jiǎn)易版本安裝

先僅僅安裝一個(gè) MySQL,一上來(lái)就主從的話很多細(xì)節(jié)都會(huì)雜糅在一起。

docker run -d -p 3306:3306 --privileged=true -v /mysql/log:/var/log/mysql -v /mysql/data:/var/lib/mysql -v /mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456  --name mysql mysql

這里的參數(shù)介紹一下:

-p:指定內(nèi)外端口映射,虛擬機(jī)為外,docker 容器為內(nèi),寫在前面的為外部端口,寫在后面的為內(nèi)部端口。因?yàn)?MySQL 本身端口為 3306,為了不使你們混淆,我外部端口不設(shè)置為 3306。
-v:指定內(nèi)外存儲(chǔ)卷映射,Docker 實(shí)踐經(jīng)驗(yàn)(三)講的就是這個(gè)。
-e:往容器內(nèi)部傳參,最后會(huì)由 MySQL 來(lái)接收。關(guān)于這個(gè) -e 其實(shí)我也還沒(méi)研究它的一個(gè)走勢(shì)。

這樣一個(gè)簡(jiǎn)易的 MySQL 就能動(dòng)了。

設(shè)置密碼

沒(méi)有設(shè)置密碼的話,不確定第二次要登錄的時(shí)候是否還能進(jìn)得去了。
不確定的意思就是可能進(jìn)得去,可能進(jìn)不去。

所以我們自行設(shè)置一個(gè)密碼比較保險(xiǎn)。

mysql> use mysql

mysql> update user set authentication_string='123456' where user='root' and host='localhost';

mysql> flush privileges;

不用注釋吧。

現(xiàn)在這個(gè) MySQL 能動(dòng)了吧,可以考慮刪掉了,咱開(kāi)始做主從復(fù)制。

如果想留著用的:
修改 my.cnf,通過(guò)數(shù)據(jù)卷同步給MySQL:

cd /mysql/conf
vim my.cnf
插入以下內(nèi)容:
[client]
default_character_set=utf8
[mysqld]
collation_server = utf8_general_ci
character_set_server = utf8

重啟MySQL:

docker restart mysql
docker exec -it mysql bash

配置 MySQL 主從復(fù)制

創(chuàng)建 bridge 網(wǎng)絡(luò)并指定 IP 區(qū)間

docker network create --driver bridge mysql-master-slave

mysql連接數(shù)默認(rèn)不夠

set global max_connections=500;
set global mysqlx_max_connections=500;

創(chuàng)建數(shù)據(jù)和配置存放目錄

# 創(chuàng)建主庫(kù)數(shù)據(jù)存放目錄
mkdir -p /home/docker/mysql/master/data
# 創(chuàng)建主庫(kù)配置存放目錄
mkdir -p /home/docker/mysql/master/conf
 
# 創(chuàng)建從庫(kù)1數(shù)據(jù)存放目錄
mkdir -p /home/docker/mysql/slave1/data
# 創(chuàng)建從庫(kù)1配置存放目錄
mkdir -p /home/docker/mysql/slave1/conf

準(zhǔn)備配置文件

主數(shù)據(jù)庫(kù)

[mysqld]
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
datadir         = /var/lib/mysql
 
secure-file-priv= NULL
 
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
 
# 服務(wù)器唯一ID,默認(rèn)是1
server-id=10
 
# 啟用二進(jìn)制日志
log-bin=mysql-bin
 
# 最大連接數(shù) 
max_connections=10000
 
# 設(shè)置默認(rèn)時(shí)區(qū)
default-time_zone='+8:00'
 
# 0:區(qū)分大小寫
# 1:不區(qū)分大小寫
lower_case_table_names=1
 
!includedir /etc/mysql/conf.d/

從數(shù)據(jù)庫(kù)

[mysqld]
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
datadir         = /var/lib/mysql
 
secure-file-priv= NULL
 
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
 
# 服務(wù)器唯一ID,默認(rèn)是1
server-id=11
 
# 啟用二進(jìn)制日志
log-bin=mysql-bin
 
# 最大連接數(shù) 
max_connections=10000
 
# 設(shè)置默認(rèn)時(shí)區(qū)
default-time_zone='+8:00'
 
# 0:區(qū)分大小寫
# 1:不區(qū)分大小寫
lower_case_table_names=1
 
!includedir /etc/mysql/conf.d/

啟動(dòng)數(shù)據(jù)庫(kù)

啟動(dòng)主數(shù)據(jù)庫(kù)

如果上面完全按照我的步驟來(lái),這里的命令也不用改參數(shù)。

docker run -d -p 3316:3306 --name mysql_master --restart=always --network mysql-master-slave -v /home/docker/mysql/master/data:/var/lib/mysql -v /home/docker/mysql/master/conf/my.cnf:/etc/mysql/my.cnf -e MYSQL_ROOT_PASSWORD=123456 mysql

啟動(dòng)從數(shù)據(jù)庫(kù)

docker run -d -p 3326:3306 --name mysql_slave1 --restart=always --network mysql-master-slave -v /home/docker/mysql/slave1/data:/var/lib/mysql -v /home/docker/mysql/slave1/conf/my.cnf:/etc/mysql/my.cnf -e MYSQL_ROOT_PASSWORD=123456 mysql

遠(yuǎn)程訪問(wèn)配置(主從)

# 在容器 mysql_master 中開(kāi)啟一個(gè)交互模式的終端
docker exec -it mysql_master /bin/bash
 
# 在容器 mysql_slave1 中開(kāi)啟一個(gè)交互模式的終端
docker exec -it mysql_slave1 /bin/bash
 
# mysql 登錄
mysql -u root -p
 
# 給予遠(yuǎn)程用戶所有表所有權(quán)限
GRANT ALL ON *.* TO 'root'@'%';
 
# 更改加密規(guī)則
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
 
# 遠(yuǎn)程訪問(wèn)
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
 
# 刷新權(quán)限
flush privileges;

主庫(kù)創(chuàng)建復(fù)制用戶

CREATE USER 'woniu'@'%' IDENTIFIED WITH mysql_native_password BY 'woniu123456';
 
GRANT REPLICATION SLAVE ON *.* TO 'woniu'@'%';

flush privileges;

查看 master 機(jī)器的狀態(tài)

SHOW MASTER STATUS;

從庫(kù)設(shè)置 master 的信息

如果前面完全按我的步驟來(lái),這里需要填寫你們自己宿主機(jī)上的 ip、還有上圖中顯示的那兩個(gè)數(shù)據(jù)。

change master to master_host='192.168.190.133', master_user='woniu', master_password='woniu123456', master_port=3316, master_log_file='mysql-bin.000003', master_log_pos=2838, master_connect_retry=30;

參數(shù)釋義:

  • master_host:主數(shù)據(jù)庫(kù)的IP地址;
  • master_port:主數(shù)據(jù)庫(kù)的運(yùn)行端口;
  • 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ù)的日志文件,通過(guò)查看主數(shù)據(jù)的狀態(tài),獲取File參數(shù);
  • master_log_pos:指定從數(shù)據(jù)庫(kù)從哪個(gè)位置開(kāi)始復(fù)制數(shù)據(jù),通過(guò)查看主數(shù)據(jù)的狀態(tài),獲取Position參數(shù);
  • master_connect_retry:連接失敗重試的時(shí)間間隔,單位為秒。

開(kāi)啟主從復(fù)制

# 開(kāi)始同步
start slave;
 
# 同步狀態(tài)
show slave status ;

如果成功,圈出來(lái)的地方要都是 yes、
如果失敗,會(huì)顯示日志:

可自行百度,不過(guò)百度出來(lái)的不一定就適用于咱,畢竟咱是在 docker 上部署的,現(xiàn)有資料較少。
要靠經(jīng)驗(yàn)。

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

相關(guān)文章

  • Linux系統(tǒng)docker部署.net?core3.1的詳細(xì)步驟

    Linux系統(tǒng)docker部署.net?core3.1的詳細(xì)步驟

    這篇文章主要介紹了Linux系統(tǒng)docker部署.net?core3.1,文章演示基本的基于docker部署.netcore服務(wù),linux系統(tǒng)騰訊云ubuntu,.net?core版本3.1,需要的朋友可以參考下
    2022-09-09
  • Docker Secret的管理和使用詳解

    Docker Secret的管理和使用詳解

    這篇文章主要介紹了Docker Secret的管理和使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • 使用docker搭建go環(huán)境的簡(jiǎn)單步驟

    使用docker搭建go環(huán)境的簡(jiǎn)單步驟

    最近公司里面的項(xiàng)目用到了Docker,正好準(zhǔn)備學(xué)習(xí)下Golang,所以就學(xué)習(xí)Golang順便也學(xué)習(xí)下Docker怎么用的,剛好從頭開(kāi)始配置下環(huán)境,這篇文章主要給大家介紹了關(guān)于使用docker搭建go環(huán)境的簡(jiǎn)單步驟,需要的朋友可以參考下
    2023-10-10
  • Docker使用數(shù)據(jù)容器的具體示例

    Docker使用數(shù)據(jù)容器的具體示例

    本文主要介紹了Docker使用數(shù)據(jù)容器的具體示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • 靜態(tài)pod 創(chuàng)建使用示例詳解

    靜態(tài)pod 創(chuàng)建使用示例詳解

    這篇文章主要為大家介紹了靜態(tài)pod 創(chuàng)建使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • Docker容器沒(méi)有權(quán)限寫入宿主機(jī)目錄的解決方案

    Docker容器沒(méi)有權(quán)限寫入宿主機(jī)目錄的解決方案

    這篇文章主要介紹了Docker容器沒(méi)有權(quán)限寫入宿主機(jī)目錄的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • Docker更換鏡像源詳細(xì)代碼教程

    Docker更換鏡像源詳細(xì)代碼教程

    Docker是一個(gè)開(kāi)源的應(yīng)用容器引擎,使用Go語(yǔ)言編寫,允許開(kāi)發(fā)者將應(yīng)用及依賴打包到輕量級(jí)容器中,可在不同Linux系統(tǒng)間移植,這篇文章主要給大家介紹了關(guān)于Docker更換鏡像源的相關(guān)資料,需要的朋友可以參考下
    2024-08-08
  • Docker離線部署geoserver的思路詳解

    Docker離線部署geoserver的思路詳解

    這篇文章主要介紹了Docker離線部署geoserver的思路詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-12-12
  • Docker安裝部署Net Core實(shí)現(xiàn)過(guò)程解析

    Docker安裝部署Net Core實(shí)現(xiàn)過(guò)程解析

    這篇文章主要介紹了Docker安裝部署Net Core實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-12-12
  • docker安裝redmine步驟

    docker安裝redmine步驟

    在本篇文章里小編給大家整理的是關(guān)于docker安裝redmine步驟和相關(guān)代碼,需要的朋友們學(xué)習(xí)下。
    2020-01-01

最新評(píng)論