Mysql5.7.x镜像开启log-bin失效及解决

news2024/12/26 21:19:15

文章目录

    • @[toc]
  • 1.问题
  • 2.mysql5.7.16的部署及开启log-bin
    • 2.1 准备挂载目录
    • 2.2 启动容器命令
    • 2.3 开启log-bin配置文件内容
  • 3.原因及解决办法
  • 4.了解binlog和redolog有什么区别?
  • 5.总结

1.问题

  由于在本地搭建了一个数据同步的环境用到了mysql,所以用Docker的方式来搭建了一个环境,开启了mysql5.7.x的log-bin,但是一直是不生效的,给我搞了老半天才知道问题在哪里,这个问题也是有点坑的,具体看如下操作和解答。

2.mysql5.7.16的部署及开启log-bin

  首先在mysql的客户端连接工具界面查询log_bins时候开启:

show variables like '%log_bin%'

  执行该命令可以看到log_bin这个变量是OFF,说明log-bin是关闭的,所以需要挂一个配置文件开启log-bin,然后重启mysql的容器

图片

2.1 准备挂载目录

图片

2.2 启动容器命令

docker run -p 3306:3306 --name mysql_server --privileged=true -v "d:/mysql/logs":/var/log/mysql -v "d:/mysql/data":/var/lib/mysql -v "d:/mysql/conf":/etc/mysql -e MYSQL_ROOT_PASSWORD=123456 -itd mysql:5.7.16

2.3 开启log-bin配置文件内容

图片

  my.cnf配置文件内容如下:

[mysqld]
# 同一局域网内注意要唯一
server-id=1
# 开启二进制日志功能 & 日志位置存放位置`/var/lib/mysql`
log-bin=mysql-bin
# binlog格式
# 1. STATEMENT:基于SQL语句的模式,binlog 数据量小,但是某些语句和函数在复制过程可能导致数据不一致甚至出错;
# 2. MIXED:混合模式,根据语句来选用是 STATEMENT 还是 ROW 模式;
# 3. ROW:基于行的模式,记录的是行的完整变化。安全,但 binlog 会比其他两种模式大很多;
binlog_format=ROW
expire_logs_days=30
# 这里还可以配置哪些库不用开启log-bin,可以配置忽略哪些库即可

3.原因及解决办法

  经过上面的操作你以为就开启log-bin了嘛?其实是没有的

  问题原因:当经过上面的步骤后,启动mysql容器后会发现如下日志:

mysqld: [Warning] World-writable config file '/etc/mysql/my.cnf' is ignored.

  这段日志的意思是说,你挂载的这个配置文件的权限太高了,进入容器查看这个my.cnf的权限如下:

图片

  如上图所示:my.cnf的权限是777,权限太大了,就会被mysql容器忽略了,这种估计它认为这种是不安全的,出于安全考虑吧,这个有点坑的,问题就出在这里的,如何解决呢?进入容器/etc/mysql下修改这个挂载的my.cnf文件的权限,然后重启mysql容器:

图片

# 修改权限命令
chmod 644 my.cnf

  重启mysql容器后查看log-bin是否开启:

图片

  然后就会惊奇地发现log_bin已经变成ON了。

4.了解binlog和redolog有什么区别?

  binlog和redolog都是Mysql里面用来记录数据库数据变更操作的日志。

  其中binlog主要用来做数据备份、数据恢复和数据同步,在Mysql的主从数据同步的场景中,master节点的数据变更,会写入到binlog中,然后再把binlog中的数据通过网络传输给slave节点,实现数据同步。

图片

而redolog,主要是在Mysql数据库事务的ACID特性里面,用来保证数据的持久化特性。

  binlog和redolog的区别有很多,可以简单总结三个点

  1. 使用场景不同,binlog主要用来做数据备份、数据恢复、以及主从集群的数据同步; Redo Log主要用来实现Mysql数据库的事务恢复,保证事务的ACID特性。当数据库出现崩溃的时候,Redo Log可以把未提交的事务回滚,把已提交的事务进行持久化,从而保证数据的一致性和持久性。

  2. 记录的信息不同,binlog是记录数据库的逻辑变化,它提供了三种日志格式分别是statement,row以及mixed;

redo log记录的是物理变化,也就是数据页的变化结果。

  3. 记录的时机不同, binlog是在执行SQL语句的时候,在主线程中生成逻辑变化写入到磁盘中,所以它是语句级别的记录方式; RedoLog是在InnoDB存储引擎层面的操作,它是在Mysql后台线程中生成并写入到磁盘中的,所以它是事务级别的记录方式,一个事务操作完成以后才会被写入到redo log中。

5.总结

  通过这篇文章的分享,希望能对你有所帮助,请一键三连,么么哒!

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

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

相关文章

肠道健康从核心菌属开始:肠道菌群的关键

谷禾健康 5月29日,是世界肠道健康日。肠道是人体最重要的消化系统之一,与人体健康紧密相关。而肠道菌群作为肠道重要组成部分,在肠道健康中发挥着重要的作用。 编辑​ 由于基因、环境、饮食、药物等因素的影响,每个人的肠道菌群都…

前端VUE3+Vite +UniAPP-- 框架搭建

除了HBuilderX可视化界面,也可以使用 cli 脚手架,可以通过 vue-cli 创建 uni-app 项目。 全局安装 vue-cli 官网 npm install -g vue/cli npx degit dcloudio/uni-preset-vue#vite-ts vue3-uniapp配置tailwindcss插件 官网 npm install tailwindcss np…

揭秘阿里云Flink智能诊断利器——Fllink Job Advisor

引言 阿里云实时计算Flink作为一款专业级别的高性能实时大数据处理系统,它在各种业务场景中都发挥了关键的作用。丰富而复杂的上下游系统让它能够支撑实时数仓、实时风控、实时机器学习等多样化的应用场景。然而,随着系统的复杂性增加,用户在…

判断数的奇偶性

1 问题 如何用一个简单的程序判断一个数的奇偶性。 2 方法 import java.util.Scanner; public class HOMEWORK{ public static void main(String[] args){ System.out.println("请输入一个数"); int input new Scanner(System.in).nextInt(); if(input % 2 0){ Sys…

wsl下安装centenos7以及遇到问题报错解决

安装 ①CentenOs7-WSL 下载地址 https://github.com/yuk7/CentWSL ②解压下载的CentenOs7到自己想要安装的位置,解压的目录就是CentenOs的安装目录。刚开始是没有ext4.vhdx的,安装完成就出现了 ③安装完成,再次运行CentenOs.exe就可以使用了…

软件测试工程师如何从功能测试转成自动化测试

功能测试转成自动化测试,答案就三个字:“靠学习”。 学习自动化的方法无非是三种: 一、靠培训(下方有如何选择培训机构) 在相对有氛围的学习环境中来学习自动化测试,这是一个较快学习的方法。二、靠自学自…

切片辅助超推理(SAHI )技术原理介绍

小物体检测是指识别和定位数字图像中尺寸相对较小的物体的任务。这些对象通常具有有限的空间范围和低像素覆盖率,并且由于它们的小外观和低信噪比可能难以检测。 小物体检测的应用 小物体检测有多种应用: 监视和安全:识别和跟踪拥挤区域中的小物体,以增强公共安全。自动驾…

c盘怎么清理?这样做可以快速释放电脑空间!

案例:我电脑c盘可用空间已经不多了,出现了标红的现象,我想清理一下我的c盘。怎么清理c盘才科学和安全,才不会误删重要的文件?有没有小伙伴分享一下解决的方法! C盘作为电脑系统的核心盘符,经常…

xxl-job Study Notes

文章目录 1 xxl-job 快速入门1.1 xxl-job是什么1.2 为什么需要xxl-job1.2.1 定时任务1.2.2 分布式任务调度1.2.3 分布式任务调度特点 1.3 xxl-job简介1.4 部署安装——基于docker1.5 xxl-job表介绍1.5 编写任务代码1.5.1 xxl-job配置1.5.2 任务代码1.5.3 分布式任务测试1.5.3.1…

计算机系统2022期末

计算机系统2022期末 本课程的复习请以知识点复习为重,全部内容共有大小280个知识点,都可能在期末考试出现,仅通过往年试卷复习是远远不够的,往年试卷仅能作为部分知识点的检测以及题目类型的大致参考,复习本课程需要尽…

对球面线性插值的理解

【前言】 线性插值是点A到点B间距离的均匀变化,球面线性插值是点A到点B的角度均匀变化,前者应用范围很广,后者主要应用平滑旋转 【球面线性插值求解】 球面线性插值(Spherical linear interpolation,Slerp&#xff…

权限系统设计方案

1 为什么需要权限管理 日常工作中权限的问题时时刻刻伴随着我们,程序员新入职一家公司需要找人开通各种权限,比如网络连接的权限、编码下载提交的权限、监控平台登录的权限、运营平台查数据的权限等等。 在很多时候我们会觉得这么多繁杂的申请给工作带…

知识变现海哥:知识博主私域卖课三大途径

哈喽,大家好,我是海哥,知识付费变现创业教练,教育公司培训总监,从事知识付费变现咨询10年,已助力3000人实现知识付费变现。 私域这里主要指的就是微信,这里跟大家介绍三种私域卖课的方式。 1 朋…

Nsis简单打包Unity window程序

制作步骤 1.Unity发布一个window exe程序 2. 创建一个脚本,Test.nsi,放置在发布文件中 3. 编写命令,使用Nsis进行编译运行(脚本拖拽到Nsis编译器中,自动运行) 4. 编译成功,发布文件夹内生成一个SetUp.exe安装程序 5.…

一文理解数据倾斜

什么是数据倾斜 并行处理数据集的某个task处理的数据明显多于其他task。 发生数据倾斜的原因 一个词概括:shuffle 在Shuffle的过程中,同样一个Key一般都会交给一个Task去处理,如果某个key特别多,如上图中task3的key有80亿,这样就会造成别的task很快算完,而task3却一直在…

项目管理专业人员能力评价等级证书(CSPM)是什么?

2021年10月,中共中央、国务院发布的《国家标准化发展纲要》明确提出构建多层次从业人员培养培训体系,开展专业人才培养培训和国家质量基础设施综合教育。建立健全人才的职业能力评价和激励机制。由中国标准化协会(CAS)组织开展的项…

判断两个矩形是否相交(Rect Intersection)

0x00 Preface 最近在开发一个2D组态图形组件的过程中,里面的数学模块,涉及到两个矩形是否相交的判断。 这个问题很多年前就写过,算是个小的算法吧。 网络上搜索一下,有很多思路,有一些思路要基于多种组合的判断&…

618有哪些数码好物值得买?2023年618数码好物必买清单

618作为年中大促节点,很多的产品会迎来历史最低价,正是入手数码产品的最佳时间点。很多人在选择物品时难免会产生618有哪些数码好物值得买的疑惑?为此,我也整理了一份618数码好物清单,都是一些实用性很强的数码好物,希…

【2023年高考作文】七套卷子全汇总及AI一分钟版本作答

2023年高考作文-全国甲卷 科技与时间 当今社会,科技已经成为人们生活的必需品。它给我们带来了很多便利与机遇,让我们能够更好地掌控时间。然而,我们回顾一下自己的生活,会发现我们似乎已经依赖了科技,甚至成为了时间…

django-vue-admin开源项目环境调试(靠谱)

一、源码地址 注意,一定要使用这个地址。(使用其他地址下载下来的感觉代码缺失,踩了大坑) django-vue-admin: 基于RBAC模型的权限控制的一整套基础开发平台,前后端分离,后端采用 djangodjango-rest-frame…