一个docker配置mysql主从服务器

        这也就是因为穷,不然谁用一个docker配置主从,哈哈

        既然成功了就记录下。过程挺折磨人的。

        首先要保证你的电脑安装好了docker

        为了保证docker当中主从能正常连网,现在docker里面创建一个网络环境

        docker network create --driver bridge mysql_network
        有了这个网络环境,启动主服务器

        docker run --name mysql-master  -e MYSQL_ROOT_PASSWORD=123456 -p 3307:3306  -v /my/custom:/etc/mysql/conf.d  -d --net mysql-net mysql --server-id=1  --log-bin=mysql-bin 

        注意要在宿主机的/my/custom 做如下配置:

文件名称: my.cnf 
   文件内容:

 [mysqld]
server-id=1  
log-bin=mysql-bin  
 #binlog-do-db=mytest,mytest1

启动完主,再启动从服务器

docker run --name mysql-slave -e MYSQL_ROOT_PASSWORD=123456 -p 3308:3306 -d --net mysql-net mysql --server-id=2 --relay-log=mysql-relay-bin --log-bin=mysql-bin --replicate-do-db=mytest,mytest1 

        注意我后来把replicate-do-db=mytest,mytest1 删了,因为无法正常同步,具体原理不清楚。

        从服务器启动之后要进入到容器当中继续配置:

        docker exec -it mysql-slave mysql -u root -p

        进入容器之后首先要执行change命令

        CHANGE MASTER TO MASTER_HOST='内网ip', MASTER_PORT=3307, MASTER_USER='root', MASTER_PASSWORD='123456'

        再启动主从同步线程:

        start slave;

        最后执行 show slave status\G命令查看从服务器的同步信息

          show slave status \G;\
*************************** 1. row ***************************
               Slave_IO_State: Waiting for source to send event
                  Master_Host: 
                  Master_User: root
                  Master_Port: 3307
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000003
          Read_Master_Log_Pos: 112240
               Relay_Log_File: mysql-relay-bin.000004
                Relay_Log_Pos: 112457
        Relay_Master_Log_File: mysql-bin.000003
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 0
                   Last_Error: 
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 112240
              Relay_Log_Space: 3153052
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error: 
  Replicate_Ignore_Server_Ids: 
             Master_Server_Id: 1
                  Master_UUID: cd8a2dba-014e-11ef-9085-0242ac1a0002
             Master_Info_File: mysql.slave_master_info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Replica has read all relay log; waiting for more updates
           Master_Retry_Count: 10
                  Master_Bind: 
      Last_IO_Error_Timestamp: 
     Last_SQL_Error_Timestamp: 
               Master_SSL_Crl: 
           Master_SSL_Crlpath: 
           Retrieved_Gtid_Set: 
            Executed_Gtid_Set: 
                Auto_Position: 0
         Replicate_Rewrite_DB: 
                 Channel_Name: 
           Master_TLS_Version: 
       Master_public_key_path: 
        Get_master_public_key: 0

        这里面包含了主从同步目前的状态。

        好了,其实就完事儿了,但是我可是捣鼓了好半天。遇到了好多问题。

        首先就是 docker 拉取mysql8.3的镜像之后,里面没有mysqlbinlog工具,所以无法看到binlog日志。别问我为啥子要看这玩意,还不是主数据库应该同步的库没写到binlog里面来。从镜像里面安装不会,后来就捣鼓着在宿主机上安装一个mysql8.0,里面有mysqlbinlog工具,然后用docker cp将binglog日志直接拖出来到宿主机上不就能看到了么

        安利这篇让我在centos上成功按照好了mysql 8.0

在CentOS 7上安装MySQL 8.0_centos7安装mysql8.0gpg密钥-CSDN博客

docker cp 容器id/名词:/var/lib/mysql/mysql-bin.000002 /root/slave

将文件从容器当中拿出来

mysqlbinlog mysql-bin.000001 >> 1.txt 查看binlog日志内容

我的binlog的格式是ROW(行类型),其中的数据就如下所示:

        

BINLOG '
0XYnZhMBAAAAOwAAAA1ZLgAAAGgAAAAAAAEABW15c3FsAAl0aW1lX3pvbmUAAgP+AvcBAAEBgNAd
1b4=
0XYnZh4BAAAAKQAAADZZLgAAAGgAAAAAAAEAAgAC/wD8BgAAAdAQ3O8=
'/*!*/;
# at 3037494
#240423 16:52:33 server id 1  end_log_pos 3037561 CRC32 0x06fff819      Table_map: `mysql`.`time_zone_name` mapped to number 105
# has_generated_invisible_primary_key=0
# at 3037561
#240423 16:52:33 server id 1  end_log_pos 3037611 CRC32 0xe80cee9a      Write_rows: table id 105 flags: STMT_END_F

我遇到问题众多,所以学习到了一些命令,分享给大家方便查看。

        在docker当中binlog大概率都在/var/lib/mysql文件夹当中

        在mysql命令行执行下命令查看binlog日志地址:

        show variables like 'datadir';

        如果要做主从同步那么binlog的类型不能是Mix,可以通过下面的命令查看当前数据库设置了啥类型:

        SHOW VARIABLES LIKE 'binlog_format';

        如果要做主从同步,主库的binlog开关一定要开启

        SHOW VARIABLES LIKE 'log_bin';

        查看主库日志,能够看到一共有哪些binlog日志:

        show master logs;

        

        查看主库状态,能够看到当前

        show master status;


        在mysql数据库客户端也可以直接查看binlog大概信息。        

        show binlog events in 'mysql-bin.000001';

        show binlog events in 'mysql-bin.000002' from 2 limit 2,10;

 

        好了好了,有啥问题可以留言,没有解散,哈哈~ 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2980653.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

开曼群岛:Web3企业的乐园

开曼群岛:Web3企业的理想之地 开曼群岛,在数字革命中大放异彩。近年来,该地区成立的Web3企业数量显著增加,如果保持目前的发展速度,并持续优化立法,那么扩展的速度将无可限量。本文将探讨推动这一增长的关…

Linux防火墙相关命令以及ip白名单配置

Linux防火墙相关命令以及ip白名单配置 firewall防火墙基础命令查看防火墙的服务状态查看防火墙的状态服务的开启、关闭和重启查看防火墙规则端口的查询、开放和关闭重启防火墙 防火墙白名单配置部分参数介绍 firewall防火墙基础命令 查看防火墙的服务状态 systemctl status f…

SAP ECC VS S4 HANA FICO

由于SAP 对于ECC官网的支持将于2027年12月31日结束,也就是说ECC系统从那时候起将不再得到SAP的官网支持与维护,所以近些年,很多企业都在进行从ECC到S4HANA版本的升级。 总的来说,两个版本的差别,在各个模块中&#xf…

文字转粤语语音怎么转?文字转语音

文字转粤语语音怎么转?文字转粤语语音的应用,不仅展现了现代科技的魅力,也为我们提供了更加便捷的交流方式。它们将文字转化为粤语发音,让我们能够更直观地感受粤语的韵味和魅力。同时,这些软件还具备高度的可定制性&a…

普乐蛙VR航天航空体验馆VR双人旋转座椅元宇宙VR飞船

多长假来袭!!想为门店寻找更多新鲜有趣的吸粉体验?想丰富景区体验?别着急,小编为你准备了一款爆款设备——时光穿梭机,720无死角旋转!!吸睛、刺激体验,将亲子、闺蜜、情侣…

探索GNDVI:绿光归一化植被指数的意义与应用

随着遥感技术的发展,植被指数成为了评估地表植被覆盖和健康状况的重要工具之一。GNDVI(Green Normalized Difference Vegetation Index,绿光归一化植被指数)作为一种新型的植被指数,在区分不同类型的植被覆盖和监测植被…

android openGL ES详解

1、渲染线程与主线程的通信 两个线程之间的通信可以用如下方法: 在主线程中的 GLSurfaceView 实例可以调用 queueEvent( )方法传递一个 Runnable 给后台渲染线程,渲染线程可以调用 Activity 的 runOnUIThread()来传递事件 (event) 给主线程。 2、顶点…

FPGA秋招-笔记整理(1)

一、关键路径 关键路径通常是指同步逻辑电路中,组合逻辑时延最大的路径(这里我认为还需要加上布线的延迟),也就是说关键路径是对设计性能起决定性影响的时序路径。也就是静态时序报告中WNS(Worst Nagative Slack&…

异地组网、内部网络需求同时满足,贝锐企业路由器G300开箱体验

由于公司最近新增了办事处,作为IT管理员的我不仅需要搞定办事处的网络,还需要解决远程访问公司内部办公系统以及文件存储服务器的问题。 在此之前,只有少量人员出差时,我们采用了虚拟专网方案来进行远程访问。然而,新…

JVM--Java对象到底存在哪?

Java对象存放在堆中,但堆又分为新生代和老年代,新生代又细分为 Eden、From Survivor、To Survivor。那我们创建的对象到底在哪里? 堆分为新生代和老年代,新生代用于存放使用后就要被回收的对象(朝生夕死)&a…

如何将web content项目导入idea并部署到tomcat

将Web Content项目导入IntelliJ IDEA并部署到Tomcat主要涉及以下几个步骤: 1. 导入Web Content项目 打开IntelliJ IDEA。选择“File” -> “New” -> “Project from Existing Sources…”。浏览到你的Web Content项目的文件夹,并选择它。Intell…

一文整理完MySQL关系型数据库相关知识

MySQL关系型数据库 1. 介绍1.1 MySQL 2. 安装3. SQL语句4. SQL分类5. DDL5.1 库的DDL5.2 表、列的DDL 6. DML6.1 添加数据6.2 修改数据6.3 删除数据 7. DQL7.1 基础查询7.2 条件查询7.3 排序查询7.4 聚合函数7.5 分组查询7.6 分页查询 8. 约束8.1 约束分类 9. 多表查询9.1 内连…

fnm:Rust开发的高效Node版本管理工具

简介 fnm 是一个基于 Rust 开发的 Node 版本管理工具,它的目标是提供一个快速、简单且可靠的方式来管理 Node.js 的不同版本。同时,它是跨平台的,支持 macOS、Linux、Windows。🚀 Fast and simple Node.js version manager, buil…

【QT进阶】Qt http编程之实现websocket server服务器端

往期回顾 【QT进阶】Qt http编程之json解析的简单介绍-CSDN博客 【QT进阶】Qt http编程之nlohmann json库使用的简单介绍-CSDN博客 【QT进阶】Qt http编程之websocket的简单介绍-CSDN博客 【QT进阶】Qt http编程之实现websocket server服务器端 一、最终效果 通过ip地址和端口…

的记忆:pandas(实在会忘记,就看作是一个 Excel 表格,或者是 SQL 表,或者是字典的字典。)

pandas 是一个开源的 Python 数据分析库,它提供了快速、灵活和富有表现力的数据结构,旨在使“关系”或“标记”数据的“快速分析、清洗和转换”变得既简单又直观。pandas 非常适合于数据清洗和转换、数据分析和建模等任务。以下是 pandas 的基本概念和主…

6DoF位姿估计深度学习架构---以FFB6D算法为例(复现)

说明 在位姿估计的学习过程中,发现不同算法的代码架构相差非常大,有的算法考虑通用性和可扩展性,进行了大量的模块化设计和继承,这对代码调试和复现工作带来很大麻烦。因此,为了便于算法复现与改进,本人参…

【视频异常检测】Open-Vocabulary Video Anomaly Detection 论文阅读

Open-Vocabulary Video Anomaly Detection 论文阅读 AbstractMethod3.1. Overall Framework3.2. Temporal Adapter Module3.3. Semantic Knowledge Injection Module3.4. Novel Anomaly Synthesis Module3.5. Objective Functions3.5.1 Training stage without pseudo anomaly …

智慧安防视频监控EasyCVR视频汇聚平台无法自动播放视频的原因排查与解决

国标GB28181协议EasyCVR安防视频监控平台可以提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制、平台级联、磁盘阵列存储、视频集中存储、云存储等丰富的视频能力,平台支持7*24小时实时高清视频监控,能同时播放多路监控视频流…

26版SPSS操作教程(高级教程第十三章)

前言 #今日世界读书日,宝子你,读书了嘛~ #本期内容:主成分分析、因子分析、多维偏好分析 #由于导师最近布置了学习SPSS这款软件的任务,因此想来平台和大家一起交流下学习经验,这期推送内容接上一次高级教程第十二章…

Unity 如何制作和发布你的 Package

一、制作你的第一个 Package Unity Package 不做过多赘述,像 URP 本质上也是一个 Package,在 Unity 中可以通过菜单栏 → Window → Package manager 来管理你当前的所有 Package 本篇文章主要介绍:如何制作并发布属于你的 Package 1.1 Pac…