主从原理

laradock配置主从

  1. 在laradock 目录下创建mysql2 作为slave
   ├── mysql  //laradock 自带的目录 我们用它作为master
│ ├── Dockerfile
│ ├── docker-entrypoint-initdb.d
│ │ └── createdb.sql.example
│ └── my.cnf
├── mysql2 //新建的slave库配置
│ ├── Dockerfile
│ ├── docker-entrypoint-initdb.d
│ │ └── createdb.sql.example
│ └── my.cnf
  1. 在mysql和mysql2目录中的my.cnf分别添加
  • mysql的my.cnf文件
log-bin=mysql-bin //启用二进制日志
server-id=1 //服务器标识
  • mysql2的my.cnf文件
log-bin=mysql-bin
server-id=2

调整 docker-compose.yml文件搜索mysql 我们可以看到一下这段配置

新增slavedockerfile配置

### MySQL ################################################
mysql2:
build: context: ./mysql2 //调整应用主目录
args:
- MYSQL_VERSION=${MYSQL_VERSION}
environment:
- MYSQL_DATABASE=${MYSQL_DATABASE}
- MYSQL_USER=${MYSQL_USER}
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- TZ=${WORKSPACE_TIMEZONE}
volumes:
- ${DATA_PATH_HOST}/mysql:/var/lib/mysql2 //调整映射目录
- ${MYSQL_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d
ports:
- "3307:3306" //我们只调整这一步 映射宿主机端口3307
networks:
- backend

调整好后,我们启动(mysql2)slave数据库,并启动(mysql)master数据库

$ docker-compose build mysql2
$ docker-compose up -d mysql mysql2

分别进入master、salve库

$ docker-compose exec mysql bash
$ docker-compose exec mysql2 bash

进入mysql 使用show master status;查看mysql状态。

mysql -uroot -proot
show master status;

主库的配置,从库连接时需要使用。

进入从库配置

192.168.135.211 为宿主机ip。mac下使用ifconfig | grep "inet"。windows 使用ipconfig 查看。

mysql> change master to
-> master_host='192.168.135.211',
-> master_user='root',
-> master_log_file='mysql-bin.000005',
-> master_log_pos=154,
-> master_password='root';
Query OK, 0 rows affected, 2 warnings (0.01 sec)
mysql> start slave;
Query OK, 0 rows affected (0.01 sec)
show slave status\G; //查看连接状态

Slave_IO_RunningSlave_SQL_Running参数 为YES 说明配置成功。重置配置使用stop slave命令

开始测试(测试前记得重启容器)。

随便插个表。

CREATE TABLE `users` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`email` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`email_verified_at` timestamp NULL DEFAULT NULL,
`password` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`remember_token` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `users_email_unique` (`email`)
) ENGINE=InnoDB AUTO_INCREMENT=66 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

如下所示成功。

使用laradock配置mysql主从同步的更多相关文章

  1. WinServer配置MySQL主从同步

    为什么要配置主从同步? 如果一台数据库服务器挂了,还有一个备用 为了方便配置,我采用两台WinServer2003虚拟机: 1.前期准备工作:安装好镜像文件,VMTOOLS,MySQL5.5 我这里以 ...

  2. CentOS6.5配置MySQL主从同步

    原文地址:http://www.cnblogs.com/zhongshengzhen/   修改主MySQL的配置 [root@localhost etc] vi /etc/my.cnf 添加以下配置 ...

  3. Window 10 单机配置MYSQL主从同步

    Master数据库:127.0.0.1:3306 Slave数据库:127.0.0.1:3307 Master操作 修改ini信息 Master MYSQL安装目录下,找到my.ini,在[mysql ...

  4. 部署mysql主从同步

                                                 mysql-day06        部署mysql主从同步 案例拓扑 • 一主.一从 – 单向复制时,建议将 ...

  5. Linux下MySQL主从同步配置

    Centos6.5 MySQL主从同步 MySQL版本5.6.25 主服务器:centos6.5 IP:192.168.1.101 从服务器:centos6.5 IP:192.168.1.102 一. ...

  6. mysql主从同步配置(windows环境)

    mysql主从同步配置(mysql5.5,windows环境)   A主机(作为主服务器)环境:windows8.mysql5.5 ip:192.168.1.100(自己填) B主机(作为从服务器,由 ...

  7. Docker Mysql主从同步配置搭建

    Docker Mysql主从同步配置搭建 建立目录 在虚拟机中建立目录,例如路径/home/mysql/master/data,目录结构如下: Linux中 新建文件夹命令:mkdir 文件夹名 返回 ...

  8. Mysql主从同步在线实施步骤【适合大数据库从库配置】

    Mysql主从同步在线实施步骤[适合大数据库从库配置] MySQL的主从搭建大家有很多种方式,传统的mysqldump方式是很多人的选择之一,但比较适合在新实例中实施,对于较大的数据库则存在停机等不可 ...

  9. mysql 主从 同步原理及配置

    一.在mssql 里头实现同步镜像,只能主库用而镜像库不能同时用,而mysql 主从同步可以实现 数据库的读写分离,主库负责 update insert delete ,从库负责select 这样一来 ...

  10. Mysql主从同步配置方案(Centos7)

    最近在做项目高可用时,需要使用数据同步.由于只有双节点,且采用主主同步可能存在循环同步的风险,故综合考虑采用Mysql主从同步(Master-Slave同步). 可能没有接触过Mysql数据同步时,可 ...

随机推荐

  1. Redis 应用场景之短信验证码

    应用场景 以 OSChina 账号注册 为例...讲错了请留言批评指正... 逻辑场景 用户操作: 用户输入手机号, 然后点击获取验证码. 前端逻辑: ajax 发起请求, 参数带上手机号. 后端逻辑 ...

  2. exim4

    exim4 一台 debian 机器日常执行 apt update 后发现需要更新如下软件包, 之前没见过, 特此记录下. root@idebian:~# apt list --upgradable ...

  3. study Rust-4【所有权】这个太重要了!

    由于Rust内存垃圾自动回收,那就得搞清楚这个所有权玩意.这个太重要了.因为关系到贯穿于你以后的程序编写. 几个概念: 一.移动 1.咱们一般语言,自己申请内存,自己管理和释放.就是new和free. ...

  4. 解决Linux中网络重启后ip变化的问题

    一.在Linux中输入命令, 编辑 ens33 网卡的网络配置文件 vim /etc/sysconfig/network-scripts/ifcfg-ens33 二.在配置中作如下修改 将 BOOTP ...

  5. H5 ios端微信浏览器下-底部工具固定方法

    在外层配置css position: fixed; width: 100%; top: 0px; bottom: 0px; overflow: auto; 结束

  6. 线上救急-AWS限频

    线上救急-AWS限频 问题 在一个天气炎热的下午,我正喝着可口可乐,悠闲地看着Cursor生成代码,忽然各大群聊中出现了加急@全体的消息,当时就心里一咯噔,点开一看,果然,线上服务出问题,多个能源统计 ...

  7. 最强AI数字人,口型、表情、动作全同步!Kairos下载介绍

    在数字化浪潮汹涌澎湃的今天,视频合成技术如同一颗璀璨的明星,照亮了内容创作的广阔天地 Kairos是一款顶级数字人制作工具,它基于先进的 AI 算法,能够快速克隆出用户的数字分身,并且精准匹配外貌.声 ...

  8. 【MOOC】华中科技大学计算机组成原理慕课答案-第四章-存储系统(二)

    待整理. 单选 1 32位处理器的最大虚拟地址空间为 A. 2G B. 8G C. 16G √D. 4G 2 在虚存.内存之间进行地址变换时,功能部件 ( )将地址从虚拟(逻辑)地址空间映射到物理地址 ...

  9. MySQL之"数据库中没有就创建,有就修改"ON DUPLICATE KEY UPDATE

    一.场景 当你想存入一条数据到扩展表中(主表下附表),但这个扩展表并非一定会创建,就会让其工程逻辑复杂化 (也就是说:有可能创建主表数据的同时不会创建扩展表数据,这样就会照成你想修改的时候,扩展表本身 ...

  10. k8s之ingress反向代理pod

    Ingress controller Nginx -->后来改造 Traefik -->也是用于微服务 Envoy  -->微服务 Ingress资源 目前使用0.17.1版本ing ...