欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

docker如何配置mysql主從復(fù)制

 更新時(shí)間:2024年12月19日 14:21:38   作者:Mars'Ares  
本文詳細(xì)介紹了如何在CentOS?7上配置和搭建MySQL集群,包括創(chuàng)建Docker容器、設(shè)置橋接網(wǎng)絡(luò)、配置MySQL主從復(fù)制等步驟

一、前提條件

1 具有docker環(huán)境的centos7

yum install docker
service docker start

2 mysql鏡像(版本5.5以上,本文采用8.0)

docker pull mysql:8.0

二、mysql集群配置文件

1 創(chuàng)建配置集結(jié)構(gòu)如下

mkdir -p /home/data/mysql/data/master
mkdir -p /home/data/mysql/data/slave
mkdir -p /home/data/mysql/master
mkdir -p /home/data/mysql/slave

2 創(chuàng)建節(jié)點(diǎn)配置文件(master.cnf與slave.cnf)

cd /home/data/mysql/master
vi master.cnf
cd /home/data/mysql/slave
vi slave.cnf

內(nèi)容如下

[mysqld]
server-id=1   #任意自然數(shù)n,只要保證兩臺(tái)MySQL主機(jī)不重復(fù)就可以了。
log-bin=mysql-bin   #開啟二進(jìn)制日志
#auto_increment_increment=2   #步進(jìn)值auto_imcrement。一般有n臺(tái)主MySQL就填n
#auto_increment_offset=1   #起始值。一般填第n臺(tái)主MySQL。此時(shí)為第一臺(tái)主MySQL
#binlog-ignore=mysql   #忽略mysql庫【我一般都不寫】
#binlog-ignore=information_schema   #忽略information_schema庫【我一般都不寫】
#replicate-do-db=aa   #要同步的數(shù)據(jù)庫,默認(rèn)所有庫

三、搭建mysql環(huán)境

1 為mysql容器創(chuàng)建專有橋接網(wǎng)絡(luò),以便固定mysql容器ip

docker network create --driver bridge --subnet 172.25.0.0/16 mysql_net

備注:

創(chuàng)建橋接網(wǎng)卡 mysql_net 指定自網(wǎng)段為172.25.0.0 如果不指定ip則與docker容器的docker0網(wǎng)卡同網(wǎng)段

2 創(chuàng)建mysql容器

(1) master

docker create 
--privileged=true                               #為容器掛載目錄添加權(quán)限
--name mysqlmaster                              #容器名為mysqlmaster
-v /home/data/mysql/data/master:/var/lib/mysql  #集群配置集中/data/master 掛載到容器/var/lib/mysql
-v /home/data/mysql/master:/etc/mysql/conf.d    #配置集中/master 中master.cnf 掛載到 /etc/mysql/conf.d中設(shè)置啟動(dòng)
-e MYSQL_ROOT_PASSWORD=root                     #設(shè)置啟動(dòng)密碼
--net mysql_net                                 #指定容器連接網(wǎng)絡(luò)
--ip 172.25.0.3                                 #指定容器使用ip
-p 3307:3306 mysql:8.0                          #指定主機(jī)映射到容器端口  即 主機(jī)訪問centos7 為3307   容器端口為3306

備注:上面#號(hào)后需要?jiǎng)h除

(2)salve

docker create 
--privileged=true 
--name mysqlslave 
-v /home/data/mysql/data/slave:/var/lib/mysql 
-v /home/data/mysql/salve:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=root 
--net mysql_net 
--ip 172.25.0.2 
-p 3308:3306 mysql:8.0

備注:同上

3 啟動(dòng)容器

docker start mysqlsalve
docker start mysqlmaster

查看運(yùn)行狀態(tài)

docker ps -a

查看容器ip

docker network inspect mysql_net

4 容器設(shè)置遠(yuǎn)程訪問

docker exec -it mysqlmaster /bin/bash

使用容器ip登錄 并輸入密碼

mysql -u root -p  -h 172.25.0.3

修改root帳號(hào)密碼

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';

備注:同理進(jìn)入另一個(gè)容器相同操作

5 使用navicat在主機(jī)(非centos7)登錄mysql容器

備注:

容器ip為docker容器內(nèi)部路由使用,虛擬機(jī)ip為外部主機(jī)入口,可以通過橋接訪問到容器

四、啟動(dòng)mysql主從

1 進(jìn)入master 賦權(quán)限 以及查詢master 的日志文件 以及位置

SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
GRANT REPLICATION SLAVE ON *.* to 'root'@'%' identified by 'root'; --賦權(quán)限給root用戶
flush privileges; --刷新權(quán)限
show master status; 

2 進(jìn)入slave 設(shè)置slave配置以及啟動(dòng)slave

change master to 
master_host='172.25.0.3',     --master的ip  不能為127.0.0.1
master_user='root',           --master的帳號(hào)密碼
master_password='root',
master_log_file='mysql-bin.000003', --master 查詢的file名  注意上面!
master_port=3306,                   --master 端口 坑!為容器端口 不是主機(jī)端口
master_log_pos=596;                 --日志文件位置  注意上面!
start slave;
show slave status;

備注:主從同步啟動(dòng)標(biāo)志 若出現(xiàn)cennecting to master 則有錯(cuò)誤 請自己查找

3 驗(yàn)證主從

主庫創(chuàng)建任何數(shù)據(jù),從庫隨即更新!

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • MySQL服務(wù)器進(jìn)程CPU占用100%的解決方法

    MySQL服務(wù)器進(jìn)程CPU占用100%的解決方法

    早上幫朋友一臺(tái)服務(wù)器解決了 Mysql cpu 占用 100% 的問題。稍整理了一下,將經(jīng)驗(yàn)記錄在這篇文章里。
    2010-12-12
  • MySQL安裝starting?the?server失敗的2種解決辦法(推薦!)

    MySQL安裝starting?the?server失敗的2種解決辦法(推薦!)

    MySQL是一個(gè)非常強(qiáng)大的關(guān)系型數(shù)據(jù)庫,但有些初學(xué)者在安裝配置的時(shí)候,遇到種種的困難,下面這篇文章主要給大家介紹了關(guān)于MySQL安裝starting?the?server失敗的2種解決辦法,需要的朋友可以參考下
    2023-04-04
  • 淺談Mysql指定順序排序查詢

    淺談Mysql指定順序排序查詢

    給大家用過實(shí)例分析了Mysql查詢中指定順序排序的相關(guān)技術(shù)問題,需要的朋友參考一下吧。
    2017-12-12
  • Mysql跨表更新 多表update sql語句總結(jié)

    Mysql跨表更新 多表update sql語句總結(jié)

    Mysql跨表更新一直是大家所關(guān)心的話題,本文介紹mysql多表 update在實(shí)踐中幾種不同的寫法,需要的朋友可以參考下
    2012-12-12
  • MySQL中表的幾種連接方式

    MySQL中表的幾種連接方式

    這篇文章主要給大家介紹了關(guān)于MySQL中表的幾種連接方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 關(guān)于MySQL的存儲(chǔ)過程與存儲(chǔ)函數(shù)

    關(guān)于MySQL的存儲(chǔ)過程與存儲(chǔ)函數(shù)

    存儲(chǔ)過程是在大型數(shù)據(jù)庫系統(tǒng)中,一組為了完成特定功能的SQL?語句集(這些SQL語句已經(jīng)編譯過了),它存儲(chǔ)在數(shù)據(jù)庫中,一次編譯后永久有效,需要的朋友可以參考下
    2023-05-05
  • mysql數(shù)據(jù)庫無法被其他ip訪問的解決方法

    mysql數(shù)據(jù)庫無法被其他ip訪問的解決方法

    這篇文章主要給大家介紹了關(guān)于mysql數(shù)據(jù)庫無法被其他ip訪問的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-09-09
  • MySQL回表產(chǎn)生的原因和場景

    MySQL回表產(chǎn)生的原因和場景

    在MySQL數(shù)據(jù)庫中,回表(Look Up)指的是在進(jìn)行索引查詢時(shí),首先通過索引定位到對應(yīng)頁,然后再根據(jù)行的物理地址找到所需的數(shù)據(jù)行,本文給大家介紹了MySQL回表是什么以及哪些情況下會(huì)回表,需要的朋友可以參考下
    2023-11-11
  • 基于mysql全文索引的深入理解

    基于mysql全文索引的深入理解

    本篇文章是對mysql全文索引進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • 詳解MySQL分組鏈接的使用技巧

    詳解MySQL分組鏈接的使用技巧

    本篇文章主要針對MYSQL中分組以及4種鏈接做了詳細(xì)的分析,有助于大家對這2項(xiàng)MYSQL功能有深入的理解,參考學(xué)習(xí)下吧。
    2017-12-12

最新評(píng)論