【Linux】Ubuntu、Debian下对deb包进行修改后重新打包——以MySQL安装包为例

news2024/11/16 8:25:47

需求

关于MySQL的lower_case_table_names参数,在Windows系统下和在Linux系统下,默认值是不同的。

  • Unix,Linux下默认为0,大小写敏感。创建的库表名将原样保存在磁盘上。如create database TeSt;将会创建一个TeSt的目录,create table AbCCC …将会原样生成AbCCC.frm文件,SQL语句也会原样解析。
  • Windows下默认为1,大小写不敏感。创建的库表时,MySQL将所有的库表名转换成小写存储在磁盘上。 SQL语句同样会将库表名转换成小写。 如需要查询以前创建的TeSt(生成TeSt.frm文件),即便执行select * from TeSt,也会被转换成select * from test,致使报错表不存在。
  • macOS下默认为2, 创建的库表名将原样保存在磁盘上, 但SQL语句将库表名转换成小写。
  • 在Linux上不支持值2。

我们实际用的时候,需求的是 设置 lower_case_table_names=1。 并且MySQL8.x 必须在安装程序初始化之前设置 lower_case_table_names 才起作用,不设置的话取跟随系统的默认值。如果已经初始化之后,再在mysqld.cnf配置文件中修改 lower_case_table_names 的值,然后重启服务也不起作用。
因此,在通过deb包离线安装MySQL服务的时候,需要提前将lower_case_table_names=1的配置添加到对应的初始化安装包配置文件中,修改后重新打包成新的deb包,用修改后的deb包安装,从而保证在Ubuntu、Debian上安装的MySQL服务是库表名大小写不敏感的。修改步骤如下:

官网下载deb包

  • 官网下载地址
    选择对应的 Ubuntu Linux 或者Debian Linux 版本,下载对应的 DEB Bundle 包。

上传到Linux系统

将上一步官网下载的deb包上传到Linux系统(这里以Ubuntu18.04 64位系统为例,安装包以mysql8.0.28为例)。
当然,如果上一步直接是通过Ubuntu系统下载安装包的话,这里就不用上传了。
在Ubuntu系统下解压tar包

tar -xf mysql-server_8.0.28-1ubuntu18.04_amd64.deb-bundle.tar

修改并重新打包指定的deb

切换到解压目录后,需要修改配置文件重新打包的deb文件名为:mysql-community-server_8.0.28-1ubuntu18.04_amd64.deb

  1. 解压 mysql-community-server_8.0.28-1ubuntu18.04_amd64.deb 这个deb包到一个自定义的临时目录 ./tmp/ 下
    dpkg -x mysql-community-server_8.0.28-1ubuntu18.04_amd64.deb ./tmp/
    
    在这里插入图片描述
    解压后的临时目录 ./tmp/ 如下: 在这里插入图片描述
    在这里插入图片描述
  2. 解压出包的控制信息到 ./tmp/DEBIAN/ 目录下(/DEBIAN/ 目录自动生成)
    dpkg -e mysql-community-server_8.0.28-1ubuntu18.04_amd64.deb ./tmp/DEBIAN/
    
    在这里插入图片描述
    在这里插入图片描述
    进入 ./tmp/DEBIAN/ 下查看解压出来的控制信息
    在这里插入图片描述
  3. 修改默认配置
    修改默认配置文件 ./tmp/etc/mysql/mysql.conf.d/mysqld.cnf
    # 添加配置后配置文件如下
    [mysqld]
    pid-file        = /var/run/mysqld/mysqld.pid
    socket          = /var/run/mysqld/mysqld.sock
    datadir         = /var/lib/mysql
    log-error       = /var/log/mysql/error.log
    
    lower_case_table_names=1
    
    
    在这里插入图片描述
  4. 修改配置后重新打包deb文件,打包后的新包名可以自定义
    dpkg-deb -b ./tmp/ mysql-community-server_8.0.28-1ubuntu18.04_amd64_edit.deb
    
    在这里插入图片描述
    打包后的包名定义为 mysql-community-server_8.0.28-1ubuntu18.04_amd64_edit.deb,因为打包后的新deb包和旧的deb包mysql-community-server_8.0.28-1ubuntu18.04_amd64.deb在同一目录下,所以起个别名区分一下。
    在这里插入图片描述
    到了这一步,deb的修改后重新打包就全部完成了。后面用修改后 mysql-community-server_8.0.28-1ubuntu18.04_amd64_edit.deb 按照步骤在Ubuntu、Debian系统上安装MySQL服务,就是大小写不敏感的了。

说明:

截图是在全部做完之后截的,正常情况下,

  • 第一步解压后 /tmp/ 目录下只有etc、lib、usr这三个目录;
  • DEBIAN目录是第二步生成的;
  • mysql-community-server_8.0.28-1ubuntu18.04_amd64_edit.deb是打包生成的新deb文件。

deb文件解包压包总结

  1. 解压出包的内容到指定的目录
    dpkg -x target.deb target/
    
  2. 解压出包的控制信息到 上一步种内容目录的子目录 /DEBIAN/ 目录下
     dpkg -e target.deb target/DEBIAN/
    
  3. 修改后内容重新打包生成新的deb包
     dpkg-deb -b target/ target.deb
    

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

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

相关文章

Java项目:SSH在线水果商城平台含管理系统

作者主页:源码空间站2022 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 本项目分为前后台,分为普通用户与管理员两个角色,前台为普通用户登录,后台为管理员登录; 管理员…

webpack5 Core-js解决async 函数、promise 对象等兼容问题

为什么Core-js 过去我们使用 babel 对 js 代码进行了兼容性处理,其中使用babel/preset-env 智能预设来处理兼容性问题。 它能将 ES6 的一些语法进行编译转换,比如箭头函数、点点点运算符等。但是如果是 async 函数、promise 对象、数组的一些方法&#x…

《FFmpeg Basics》中文版-06-填充视频

正文 填充视频意味着向视频帧添加额外的区域以包含额外的内容。当输入应在具有不同宽高比的显示器上播放时, 通常需要填充视频。 填充视频基础知识 对于视频填充,我们使用表格中描述的填充过滤器。 描述在输入视频帧中添加彩色填充,该帧位…

HTML+CSS+JS大作业:商城网购网站设计——淘宝1页

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材,DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 在线商城购物 | 水果商城 | 商城系统建设 | 多平台移动商城 | H5微商城购物商城项目 | HTML期末大学生网页设计作业,Web大学生网页 HTML&a…

微信小程序获取用户头像昵称组件封装(最新版)

一、前言 微信小程序将在2022年11月08日对获取用户头像昵称信息的API再一次进行改动,这次的改动比较大。 更多详情查看公告:公告直达链接 我的项目比较多,而且大部分都是只需要获取用户的头像以及昵称,并不需要像官方的“最佳实…

袋鼠云数栈UI5.0体验升级背后的故事:可用性原则与交互升级

最近,我们袋鼠云的UED部⻔小伙伴们,不声不响地⼲了⼀件⼤事——升级了全新设计语言「数栈UI5.0」。 众所周知,用户在使用产品时,是一个动态的过程,用户和产品之间进行交互的可用性,能否让用户愉悦、快速地…

uni-app - H5 页面路由不存在时,跳转到自己定制的 404.vue 页面(当路由不存在时自动重定向到自定义的 404 组件)超详细简约高效的解决方案

前言 在 uni-app 开发 H5 移动端项目中,如果访问一个不存在的路由路径后,自定跳转重定向到自己定义的 404 页面。 本文带您从 0-1 一路复制,仅需 2 步完成 当页面 router 路由不存在,自动跳转到指定的 404 页面, 用最简单且最高效的方式完成,助您轻松完成该功能, 如下图…

【好文鉴赏】初创公司到底值不值得去?从以下几点考虑

关键词:【初创公司】【职业发展】【就业】 原文链接: https://tech.sina.cn/csj/2018-09-10/doc-ihiixyeu5565677.d.htmlhttps://www.zhihu.com/question/312725868/answer/693656577 有人说初创公司管理不成熟,未来不稳定; 有…

最小二乘法,加权最小二乘法,迭代重加权最小二乘法

文章目录一:最小二乘法(OLS)1:概述2:代数式3:矩阵式(推荐)3.1:实现代码二:加权最小二乘法(WLS)1:增加对角矩阵 W1.1&#…

oracle数据库控制语言—DCL

文章目录1、授予系统权限1.1 授予创建其他对象权限2、撤销系统权限2.1 示例3、oracle 中的角色3.1 什么时角色3.2 创建角色并且授予权限给角色3.2.1 创建角色3.2.1.1 示例3.2.2 授予权限给一个角色3.2.2.1 示例3.2.3 授予一个角色给用户3.2.3.1 示例一3.2.3.2 示例二3.2.3.3 示…

基于MySQL的事务管理

目录 概念:多条语句组成一个执行单位 事务的基本操作 MySQL中的事务必须满足A,C,I,D这四个基本特性 事务操作举例——(转账) 事务保存点——SAVEPOINT 事务隔离级别——多线程(并发同时访问) 总结 概念:多条语句组成一个执…

Mongo的数据操作

文章目录一,创建数据库二,插入数据(一)插入单条数据1,insert2,save(二)插入多条数据三,修改数据四, 更新所有找到匹配的数据五,数据删除&#xff…

极速Go语言入门(超全超详细)-基础篇

文章目录 GoLang概述 Go语言三大牛谷歌创造Golang的原因Golang 的发展历程Golang 的语言的特点 Go语言开发工具Go开发环境配置(sdk下载及配置) 使用开发工具创建第一个Go项目 Go 程序开发的注意事项 官方参考文档 Go学习 Go变量 数据类型 标识符 运算符 键盘输入语句 程序流程…

[附源码]计算机毕业设计JAVA高校贫困生认定系统

[附源码]计算机毕业设计JAVA高校贫困生认定系统 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM myba…

列表的嵌套--Python

#列表的嵌套:在每一个列表中都包含其他列表元素 #获取李四所在列表的值? #获取李四所在的子列表索引,并通过索引获取改子列表值 name_list [[小明,小红,小绿],[Tom,Lily,Rose],[张三,李四,王五]] print(name_list[2]) #在从子列表中通过李四所在的索引…

[翻译] 使用FXGL创建一个非常基本的游戏

游戏要求 首先,让我们为我们的简单游戏定义一些要求: 一个600x600的窗口。屏幕上的玩家,由蓝色矩形表示。可以通过按键盘上的W、S、A或D来移动玩家。UI由一行文本表示。当玩家移动时,UI文本会更新以显示玩家在其生命周期内移动了多少像素。 …

今天给在家介绍一篇基于jsp的旅游网站设计与实现

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问…

zookeeper报错length is greater than jute.maxbuffer=1048575

1、场景 最近在给上云项目部署系统,通过压测都已经正式上生产后发现kafka存在异常错误,经排查发现zookeeper也存在错误,怀疑kafka的问题可能是由于zk异常到的,报错如下 2022-11-17 06:26:43,052 [myid:] - WARN [NIOWorkerThr…

HTML学生个人网站作业设计:游戏网站设计——原神首页 1页 带轮播图

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材,DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 游戏官网 | 游戏网站 | 电竞游戏 | 游戏介绍 | 等网站的设计与制作 | HTML期末大学生网页设计作业,Web大学生网页 HTML:结构 …

Burpsuite简介及MIME上传绕过实例

目录预备知识1.了解burpsuite2.了解服务端MIME类型检测实验目的实验环境实验步骤一使用Burpsuite的代理功能Target模块实验步骤二使用burpsuite上传绕过服务端MIME类型检测预备知识 1.了解burpsuite Burp Suite是用于攻击web应用程序的集成平台。包含了许多工具,并…