zoukankan      html  css  js  c++  java
  • Mysql主从互备环境搭建

    Mysql主从互备环境搭建

    一、环境准备和部署架构

    主从复制,是用来建立一个和主数据库完全一样的数据库环境,主数据库一般是准实时的业务数据库,主从复制的作用如下:

    l 做数据的热备,作为后备数据库,主数据库服务器故障后,可切换到从数据库继续工作,避免数据丢失。

    架构的扩展。业务量越来越大,I/O访问频率过高,单机无法满足,此时做多库的存储,降低磁盘I/O访问的频率,提高单个机器的I/O性能。

    l 读写分离,使数据库能支持更大的并发。

    规划:

    l 服务器操作系统为centos7.9,为最小化安装。

    主机A和主机B均关闭防火墙和SELINUX 。

    l IP地址分别为192.168.10.62192.168.10.63.

    l MySQL版本为 mysql:8.0 ,为Docker镜像安装。

     

    二、安装mysql

    2.1、安装docker

    l Docker 要求 CentOS 系统的内核版本高于 3.10 ,通过 uname -r 命令查看你当前的内核版本。

         

    使用 root 权限登录 Centos。确保 yum 包更新到最新。

    yum update

    卸载旧版本(如果安装过旧版本的话)

    yum remove docker  docker-common docker-selinux docker-engine

    安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

     yum install -y yum-utils device-mapper-persistent-data lvm2

    设置yum源

    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

    可以查看所有仓库中所有docker版本,并选择特定版本安装

    yum list docker-ce --showduplicates | sort -r

    安装docker

     yum install docker-ce-18.03.1.ce-1.el7.centos  docker-ce-cli-1:20.10.8-3.el7  containerd.io

    l 启动并加入开机启动

    systemctl start docker

    systemctl enable docker

    验证安装是否成功(有client和service两部分表示docker安装启动都成功了)

    docker version

    2.2、安装mysql8.0

    2.2.1、主mysql  192.168.10.62

    l 拉取镜像:

    docker pull mysql:8.0

    l 创建容器:

    docker run --restart=always --privileged=true -p 3306:3306 --name mysqlmaster -e MYSQL_ROOT_PASSWORD=password123 -v /docker/mysql/log:/var/log/mysql -v /docker/mysql/conf:/etc/mysql/conf.d  -v /docker/mysql/data:/var/lib/mysql  -d mysql:8.0

     

    2.2.2、从mysql  192.168.10.63

    l 拉取镜像

     docker pull mysql:8.0

    l 创建容器:

     docker run --restart=always --privileged=true -p 3306:3306 --name mysqlslave -e MYSQL_ROOT_PASSWORD=password123 -v /docker/mysql/log:/var/log/mysql -v /docker/mysql/conf:/etc/mysql/conf.d  -v /docker/mysql/data:/var/lib/mysql  -d mysql:8.0

     

    l 修改主从配置:参考命令

    docker cp 本地路径/my.cnf mysql:/etc/mysql,将本地文件替换掉mysql容器里面的文件

          

    2.2.3、远程访问授权

        use mysql;

    ALTER USER 'root'@'%' IDENTIFIED BY 'password123' PASSWORD EXPIRE NEVER;

    ALTER USER 'root'@'%' IDENTIFIED with mysql_native_password by 'password123';

    flush privileges;

    2.3、配置mysql主从复制

    2.3.1、主从复制---Master主机上执行以下步骤

    1、配置my.cnf

     

    2、创建备机链接主机的账号  授权 https://blog.csdn.net/zyhlwzy/article/details/80569422

     

      

     

    2.3.2、开启主从同步 从机上执行

     

     1my.cnf 添加

    server-id=63

    innodb_flush_log_at_trx_commit=2

    sync_binlog=1

    log-bin=mysql-bin-63

    三、配置mysql主从关系

    3.1、在从(Slave)节点的mysql执行以下命令:

    mysql> CHANGE MASTER TO

    MASTER_HOST='192.168.10.62',

    MASTER_USER='repl',

    MASTER_PASSWORD='password123',

    MASTER_LOG_FILE='mysql-bin-200.000010',

    MASTER_LOG_POS=156;

    3.2、开启复制监听

      start slave;

    3.3、检查状态

       show slave status  G

       确保以下参数是yes

       Slave_IO_Running: Yes

           Slave_SQL_Running: Yes

     

     

     

     

    3.4、复制关系问题修复:

    1、检查mysqlservice_id

       show  variables like 'server_id';

    2、修改从链接主的配置信息

       stop slave;

           CHANGE MASTER TO  MASTER_HOST='192.168.10.62';

       CHANGE MASTER TO MASTER_USER='repl';

       CHANGE MASTER TO MASTER_PASSWORD='password123';

    #来自主机的show master

      CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin-200.000010';  

     #来自主机的show master

           CHANGE MASTER TO MASTER_LOG_POS=156;    start slave;

       show slave stauts G;

    四、主从复制测试

    Master 库中创建表 test-replication

     

     

     

    slave库中显示结果

     

    五、参考

      5.1dockerhttps://www.runoob.com/docker/centos-docker-install.html

      5.2docker hubhttps://hub.docker.com/ 

    docker安装:
    https://www.cnblogs.com/yufeng218/p/8370670.html

    https://hub.docker.com/_/mysql

    MySQL双主配置
    https://www.cnblogs.com/fengyutech/p/4967522.html
    Mysql主从配置
    https://blog.csdn.net/qq_33196814/article/details/81513907
    如何修改 docker 容器的目录映射:
    https://www.cnblogs.com/poloyy/p/13993832.html
    MySQL 8.0主从(Master-Slave)配置:
    https://blog.csdn.net/zyhlwzy/article/details/80569422

     

     

  • 相关阅读:
    开放源码的对象关系映射工具ORM.NET 插入数据 Insert/Update Data
    开放源码的对象关系映射工具ORM.NET 快档开发入门 Quick Start
    .NET 动态脚本语言Script.NET 开发指南
    开放源码的对象关系映射工具ORM.NET 删除数据 Deleting Records using ORM.NET
    .NET Remoting过时了吗?为什么公司的项目还是选择用.NET Remoting,而不是WCF?
    开放源码的对象关系映射工具ORM.NET 查看和显示数据 View and Display data using ORM.NET
    开放源码的对象关系映射工具ORM.NET 查询表 调用存储过程 增加自定义代码
    技术人生:坚持,每日一博
    CQRS:CQRS + DDD + MDP 实现快速应用程序开发
    NodeJs:Happy代码生成器,重构了代码,更新了文档,完善了示例,欢迎下载使用
  • 原文地址:https://www.cnblogs.com/show58/p/15386824.html
Copyright © 2011-2022 走看看