Linux之docker安装mysql8.0集群

您所在的位置:网站首页 mysql双主原理 Linux之docker安装mysql8.0集群

Linux之docker安装mysql8.0集群

2024-06-26 09:25:27| 来源: 网络整理| 查看: 265

文章目录 docker安装mysql8.0集群-主主(双主)部署实现1.主从复制的原理2.主主(双主)实现方案2.前置条件3.配置文件添加1)主节A(Master-slave)点配置2)主节B(Master-slave)点配置3)重启两个docker的mysql容器 4.mysql数据库两个主节点设置(执行命令的时候,最好每一步,两个主节点都是同时执行)4.1进入mysql容器:`docker exec -it mysql容器名称/id bash`4.2登录mysql客户端:`mysql -uroot -p123456(密码)`4.3创建用户并授权:用户:`slave`,密码:`123456`4.4查看master状态:`SHOW MASTER STATUS`,记录二进制文件名(mysql-bin.000001)和位置(5778)4.5 设置连接:需要主服务器主机名,登陆凭据,二进制文件的名称和位置4.6 启动slave同步进程4.7 查看slave状态: 5.测试,在主库上插入数据就可以看到效果了6.问题解决

docker安装mysql8.0集群-主主(双主)部署实现 1.主从复制的原理 Master将数据改变记录到二进制日志(binary log)中,也就是配置文件log-bin指定的文件, 这些记录叫做二进制日志事件(binary log events);Slave 通过 I/O 线程读取 Master 中的 binary log events 并写入到它的中继日志(relay log);Slave 重做中继日志中的事件, 把中继日志中的事件信息一条一条的在本地执行一次,完 成数据在本地的存储, 从而实现将改变反映到它自己的数据(数据重放)。 2.主主(双主)实现方案

实现方案就是把两台mysql都可读写,互为主备,主机A->主机B备份,主机B->主机A备份

2.前置条件

两个服务器上分别是:192.168.56.102(主)、192.168.56.105(主) 主主服务器mysql版本最好一致 在两台服务器上启动都启动好两个mysql 安装教程:Linux之centos7下docker 安装部署mysql8.0环境 安装教程:Linux之docker安装mysql8.0集群-主从部署实现

3.配置文件添加 1)主节A(Master-slave)点配置

修改 Master 的配置文件/etc/my.cnf,在my.cnf文件中加入如下配置内容

[mysqld] #必须唯一 server-id = 100 #开启及设置二进制日志文件名称 log_bin = mysql-bin binlog_format = MIXED sync_binlog = 1 #二进制日志自动删除/过期的天数。默认值为0,表示不自动删除。 expire_logs_days =7 # binlog_cache_size = 128m # max_binlog_cache_size = 512m # max_binlog_size = 256M # 要同步的数据库 # binlog-do-db = test # 不需要同步的数据库 binlog-ignore-db = mysql binlog_ignore_db = information_schema binlog_ignore_db = performation_schema binlog_ignore_db = sys 2)主节B(Master-slave)点配置

修改 slave 的配置文件/etc/my.cnf,在my.cnf文件中加入如下配置内容

#必须唯一 server-id = 101 #开启及设置二进制日志文件名称 log_bin = mysql-bin binlog_format = MIXED sync_binlog = 1 #二进制日志自动删除/过期的天数。默认值为0,表示不自动删除。 expire_logs_days =7 # binlog_cache_size = 128m # max_binlog_cache_size = 512m # max_binlog_size = 256M # 要同步的数据库 # binlog-do-db = test # 不需要同步的数据库 binlog-ignore-db = mysql binlog_ignore_db = information_schema binlog_ignore_db = performation_schema binlog_ignore_db = sys 3)重启两个docker的mysql容器 docker restart mysql容器名称 4.mysql数据库两个主节点设置(执行命令的时候,最好每一步,两个主节点都是同时执行) 4.1进入mysql容器:docker exec -it mysql容器名称/id bash 4.2登录mysql客户端:mysql -uroot -p123456(密码) 4.3创建用户并授权:用户:slave,密码:123456 #创建用户 mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by '123456'; mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; mysql> CREATE USER 'slave'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; #分配权限 mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%'; #刷新权限 mysql> flush privileges; 4.4查看master状态:SHOW MASTER STATUS,记录二进制文件名(mysql-bin.000001)和位置(5778)

注:如果要刷新日志文件可执行:reset master;

mysql> SHOW MASTER STATUS; +------------------+----------+--------------+--------------------------------------------------+-------------------------------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +------------------+----------+--------------+--------------------------------------------------+-------------------------------------------+ | mysql-bin.000001 | 5778 | | mysql,information_schema,performation_schema,sys | c7a674f5-3600-11eb-903c-0242ac110002:1-21 | +------------------+----------+--------------+--------------------------------------------------+-------------------------------------------+ 1 row in set (0.00 sec) 4.5 设置连接:需要主服务器主机名,登陆凭据,二进制文件的名称和位置

注意:MASTER_LOG_FILE和MASTER_LOG_POS要和主库查看出来状态对上

CHANGE MASTER TO MASTER_HOST='192.168.56.102', MASTER_USER='slave', MASTER_PASSWORD='123456', MASTER_PORT=3306, MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=5778; 4.6 启动slave同步进程 mysql> start slave; 4.7 查看slave状态: mysql> show slave status\G;

展示信息:

*************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.56.102 Master_User: slave Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000001 Read_Master_Log_Pos: 2638 Relay_Log_File: 13b2d81a26f9-relay-bin.000004 Relay_Log_Pos: 324 Relay_Master_Log_File: mysql-bin.000001 Slave_IO_Running: Yes Slave_SQL_Running: Yes

成功的标志:Slave_IO_Running: Yes和Slave_SQL_Running: Yes

5.测试,在主库上插入数据就可以看到效果了 6.问题解决

这两个博客里有一些问题的解决方案: Linux之centos7下docker 安装部署mysql8.0环境 Linux之docker安装mysql8.0集群-主从部署实现



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭