1. 程式人生 > >【docker+mysql】基於docker 配置 mysql5.7 主從 master-slave

【docker+mysql】基於docker 配置 mysql5.7 主從 master-slave

mysql5.7,版本不同配置略有不同。

首先需要按照之前介紹的mysql docker映象 來啟動兩個mysql的容器。

映象通過命令拉取:

docker pull mysql
通過docker-compose.yml來啟動容器:
version: '3.1'
services:
  master:
    image: mysql
    environment:
      - MYSQL_ROOT_PASSWORD=123
    restart: always
    ports:
      - "50001:3306"


  slave1:
    image: mysql
    environment:
      - MYSQL_ROOT_PASSWORD=123
    restart: always
    ports:
      - "50002:3306"
有兩個mysql,master對映到50001埠,slave對映到50002埠,預設的root密碼為123,通過環境變數傳入。

然後:

docker-compose up -d
採用後臺方式啟動容器。


可以看到兩個mysql服務已經啟動。

使用終端登入一下:

mysql -uroot -p -h127.0.0.1 -P50001

輸入密碼123,可以登入,說明啟動成功。

接下來就是配置mysql主從部分。

首先進入到master容器內部,修改配置檔案,配置檔案預設為/etc/mysql/my.cnf

進入:

docker exec -it 2a5a  /bin/bash
注意修改容器id為自己的,找到相應的檔案,修改my.cnf為:
[mysqld]
log-bin=mysql-bin
server-id=1
這是最簡單的配置,默認同步全部資料庫,id必須全域性唯一。

然後重啟mysql:

/etc/init.d/mysql restart

進入到mysql:
mysql -uroot -p

建立從伺服器複製使用的賬號:
create user 'repl'@'%' identified by 'repl';
授予複製許可權:
grant replication slave on *.* to 'repl'@'%';
最後檢視master狀態:
show master status;

如果現實empty set,說明沒有重啟,重啟以後還是empty set,那麼就是配置檔案有問題。



這是正常的status,slave伺服器需要file和position兩個資訊,記錄下來。

然後處理從伺服器。

進入容器內部:

docker exec -it ad51  /bin/bash
修改配置檔案:/etc/mysql/my.cnf
[mysqld]
server-id=2

重啟。

登入mysql,設定:
mysql> change master to master_host='master',master_port=3306, master_user='repl',master_password='repl',master_log_file='mysql-bin.000001',master_log_pos=154;
Query OK, 0 rows affected, 2 warnings (0.02 sec)
也就是主伺服器的一些資訊。

然後:

start slave;

最後檢視:



說明配置成功。

最後驗證一下:

在主庫下建立一個test資料庫,再建立新表t,然後插入一條資料:

create database test;

create table t(id int not null, name varchar(100));

insert into t values(1, 'ly');

在從庫下檢視:



說明配置成功。需要注意的是,這裡只是配置了slave會同步master的資料,也就是說往master裡寫,slave可以讀到,但是往slave裡寫,master讀不到,因為沒有配置。正常是不允許向slave寫的,需要一些額外的配置,這裡只是演示一個最最簡單的情況。



相關推薦

docker+mysql基於docker 配置 mysql5.7 主從 master-slave

mysql5.7,版本不同配置略有不同。 首先需要按照之前介紹的mysql docker映象 來啟動兩個mysql的容器。 映象通過命令拉取: docker pull mysql 通過docker-compose.yml來啟動容器: version: '3.1' s

mysql5.7主從(Master/Slave)同步配置

server 5.7 test 設置 format slave mct 關閉 忽略 環境: mysql版本都是5.7(以前的版本配置可能不一樣) 主(Master) windows:192.168.0.68 從(Slave) centos7:192.168.0.4 基本

原創譯文基於Docker和Rancher的超融合容器雲架構

基於Docker和Rancher的超融合容器雲架構 ---來自Rancher和Redapt     超融合架構在現代資料中心是一項巨大的變革。Nutanix公司發明了超融合架構理論,自從我聽說他們的“iPhone資料中心”理論時,我便對此產生了極大興趣。在我以前任職Clo

Spring AOP基於Schema配置切面

public class AdviceMethod { // 增強方法 public void aroundMethod(ProceedingJoinPoint pjp) { // 目標方法執行前的邏輯 System.out.println("How are you!"); try {

ubuntu16配置mysql5.7主從同步

mysqld 設置 update 三臺 host 測試 start mysql sha 測試環境如下:   master: 10.0.0.26   slave01: 10.0.0.27   slave02: 10.0.0.28 一、三臺機均安裝mysql-server5

PRACTISE基於Docker構造centos-java8映象

專案中常常需要使用oracle的Java來啟動java專案,常用的版本為Java8, 但是https://hub.docker.com/中還沒有找到official的版本,因此考慮自己構造一個適用的映象,實現了有一段時間了,當時沒有記錄下來,以防忘記,現在不再一步步執行,只記

K8S基於Docker+K8S+GitLab/SVN+Jenkins+Harbor搭建持續整合交付環境(環境搭建篇)

## 寫在前面 > 最近在 K8S 1.18.2 版本的叢集上搭建DevOps環境,期間遇到了各種坑。目前,搭建環境的過程中出現的各種坑均已被填平,特此記錄,並分享給大家! ## 伺服器規劃 | IP | 主機名 | 節點 | 作業系統 | |

用前端姿勢玩docker基於docker快速構建webpack的開發與生產環境

## 目錄 * [用前端姿勢玩docker【一】Docker通俗理解常用功能彙總與操作埋坑](https://www.cnblogs.com/pomelott/p/13212085.html) * [用前端姿勢玩docker【二】dockerfile定製映象初體驗](https://www.cnblogs.c

Docker江湖docker部署與理解

保存 關心 apt ice read rail eight ext 用戶 轉載請註明出處:http://blog.csdn.net/gamer_gyt 博主微博:http://weibo.com/234654758 Github:https://

MySQL高可用基於MHA架構的MySQL高可用故障自動切換架構

bin candidate nlog repo sage $1 內容 data from 基於MHA架構的MySQL高可用切換架構 環境: ? CentOS7+MySQL 5.7 + GTID 業務系統:mainBusiness ? nod

linux centos docker mysql redis mongodb rabbitmq配置 基本使用

要求 Docker支援以下的CentOS版本: CentOS 7(64位) CentOS 6.5(64位)或更高的版本 Docker要求CentOS系統的核心版本高於3.10,檢視本頁面的前提條件來驗證你的CentOS版本是否支援做cker。 通過uname -r命令檢視你當前的核心版本 以下藍色字

轉載Centos7.3安裝和配置Mysql5.7

Linux安裝mysql aliyun安裝mysql https://blog.csdn.net/qq_35393693/article/details/79994097   遇到問題向下看   (第七步:設定允許遠端登入 Mysql預設不允許遠端登入

Docker加速- 解決docker pull映象速度慢的問題

解決docker pull映象速度慢的問題 直接下載Docker映象時,由於種種原因,經常下載失敗,即使連線成功也是很慢,怎麼辦呢 目前我知道可以提升速度的辦法:DaoCloud 提供Docker Hub Mirror服務 使用者可以進入Docker Hub Mirror註

MySQL基於MySQL的SQL優化(三)——對子查詢進行優化

通常情況下,需要把子查詢優化成JOIN查詢。 這是一個實現查詢演員名為“sandra”的表演影片片名的SQL,通過EXPLAIN關鍵字進行解析,這個查詢中包含三個子查詢,並且出現

MySQL基於MySQL的SQL優化(二)——對count()、max()的優化

max(): 通過一條含有max()的語句來了解一下通過索引來優化帶有max()方法的SQL語句。 SELECT MAX(payment_date) FROM payment;

一、Docker筆記進入Docker世界

​ 我們平時判斷一個電腦的效能主要看什麼?磁碟讀寫?CPU的主頻高低?還是記憶體的大小?可是作為個人使用者來說,這些引數高一些足夠我們去使用了,可是對於一個大型系統甚至是超大型系統,當前的硬體是遠遠達不到的。而作為當前的雲端計算時代,虛擬化技術就發揮了自己的獨特的作用。 ​ 隨著資訊科技的快速發展,虛擬

xingorg1-ui基於vue3.0從0-1搭建元件庫(一)環境配置與目錄規劃

npm地址 github原始碼 開篇-環境配置 環境配置: 使用vue-cli搭建專案框架,需要用vue3的話,得先把vue-cli的版本升級到vue-cli@5以上 npm install -g @vue/cli 官網相關說明: 配置預選項: 後來後悔自己加上Lin

xingorg1-ui基於vue3.0從0-1搭建元件庫 (一) 環境配置與目錄規劃

npm地址 github原始碼 開篇-環境配置 環境配置: 使用vue-cli搭建專案框架,需要用vue3的話,得先把vue-cli的版本升級到vue-cli@5以上 npm install -g @vue/cli 官網相關說明: 配置預選項: 後來後悔自己加上Lin

匯總 HBase 安裝配置

soft fig hbase安裝 family 整合 org 文檔 參數 mar HBase 默認配置 Centos6.5下Hbase配置 官網配置文檔:http://hbase.apache.org/book.html#_configuration_files 中文

日常錯誤spring-boot配置文件讀取不到

無法 pan factory sdn 一個 pre nco span xxx 最近在用spring-boot做項目時,遇到自定義的配置文件無法讀取到的問題,通過在appcation.java類上定義@PropertySource(value = {"classpath:XX