当前位置: 首页 > 网络应用技术

使用Docker实现MySQL Master

时间:2023-03-06 01:26:32 网络应用技术

  在许多项目,尤其是Internet项目中,使用MySQL时使用了Master -Lave复制,阅读和写作的体系结构。

  为什么要使用大师和大满贯的架构,读写?如何实现?有什么缺点?让我们从这些问题开始这段研究旅程!

  mysql大师和从副本

  首先拉码头镜,我们在此处使用MySQL的5.7版本:

  然后使用此图像启动容器。

  主(主):

  奴隶(来自):

  Master的外部映射端口为3339,并且从站的外部映射端口为3340。默认端口3306,否则可能会有问题无法通过IP连接到Docker容器中的MySQL。

  使用命令查看运行容器:

  您可以使用Navicat之类的工具来测试连接MySQL

  通过命令输入主容器,您也可以通过命令输入。627A2368C865是容器的ID,而MySQL -Amaster是容器的名称。

  切换到/etc/mysql目录,然后编辑我的.cnf.it此时我们需要在docker容器中安装vim。使用命令安装vim

  如果您仍然报告错误,请执行该错误,然后再次执行以成功安装VIM。

  配置完成后,需要重新启动MySQL服务以使配置有效。completerestart。重新启动MySQL服务,Docker容器停止时,我们需要启动容器。

  下一步是在主数据库中创建数据同步用户,并授予用户从属复制的从权限和主体之间同步数据的复制客户端权限。

  像配置主体一样,将以下配置添加到从属配置文件my.cnf:

  配置完成后,我还需要重新启动MySQL Service和Docker容器,这与操作和配置Master一致。

  输入MySQL,以主持人执行

  文件和位置字段的值将在以后使用。在后续操作完成之前,有必要确保主库不能执行任何操作,否则状态更改将导致状态值。

  输入从属中的mysql,执行

  订单说明:

  master_host:主地址,指容器的独立IP,您可以查询容器的IP

  master_port:主端口号,指容器的端口号

  Master_user:用户用于数据同步

  master_password:用于同步的用户的密码

  master_log_file:指定哪个日志文件从哪个日志文件开始,即上述文件字段的值

  master_log_pos:从哪个姿势开始阅读,那就是

  master_connect_retry:如果连接失败,重试时间间隔,则设备为第二,默认值为60秒

  从属中的MySQL终端执行用于查看主同步状态。

  在正常情况下,奴隶制和奴隶制都是两者都是,因为我们没有使主复制该过程。主人从复制过程开始,然后再次查询主和同步状态。

  Slaveiorunning和Slavesqlrunning都是肯定的,表明主要继任的主要副本已经打开。这次,您可以测试数据同步是否成功。

  在Master中创建一个新数据库

  在奴隶中查看

  上面,mySQL被复制!

  复制和Ersen Datups:

  使用主开始从复制过程开始之后,如果始终连接奴隶制,则意味着主-Lave复制已处于连接状态。这种情况通常是由以下原因引起的。我们可以根据last_io_error的提示将其排除。