【Linux】环境设置MySQL表名忽略大小写

目录

说明

一、摘要

二、查看服务器上MySQL情况

方式一:通过Linux方式

方式二:借助可视化工具(Navicat)

三、MySQL设置忽略表名大小写的参数(lower_case_table_names)

四、网上解决方案

方法一:只修改my.cnf

1.添加lower_case_table_names=1

 2.保存并退出

3.重启MySQL

问题:

方法二:临时设置

1.登录MySQL

2.设置lower_case_table_names

3.刷新权限

问题:

五、解决方案(docker方式)

1.先备份MySQL数据库数据

2.停止MySQL

3.找到MySQL数据存放路径

4.备份数据目录

5.清空之前的数据目录

6.配置docker compose的MySQL

7.重新用docker compose命令运行一个MySQL容器

8.查看启动日志

9.将数据恢复

10.验证


说明

本文档适用于docker容器运行的MySQL,修改MySQL表名忽略大小写。

一、摘要

在MySQL中,表名的大小写敏感性取决于操作系统和MySQL的配置。在Unix/Linux系统上,表名通常是区分大小写的,而在Windows系统上则通常是不区分大小写的。由于之前MySQL未设置忽略表名大小写导致数据查询失败等问题。

二、查看服务器上MySQL情况

方式一:通过Linux方式

查看MySQL是否忽略了表名大小写,先登录MySQL(mysql -uroot -p),再通过命令查看目前MySQL忽略表名的情况(SHOW VARIABLES like "lower_case_table_names";)

方式二:借助可视化工具(Navicat)

连上服务器上对应的MySQL服务,新建查询,如下图所示:

三、MySQL设置忽略表名大小写的参数(lower_case_table_names)

lower_case_table_names 可以设置为以下三个值之一:

0:区分大小写。数据库和表名在存储和比较时都区分大小写。在 Unix 和 Linux 系统上,这是默认值。

1:不区分大小写。数据库和表名在存储和比较时都不区分大小写。在 Windows 系统上,这是默认值。但请注意,即使设置为 1,在某些情况下(如使用 InnoDB 存储引擎和 CREATE TABLE 语句中的引号),MySQL 仍然可能区分大小写。

2:表名在存储时区分大小写,但在比较时不区分。这个设置很少使用,因为它可能导致混淆和不一致的行为。

注意:在安装MySQL过程中,只有在初始化的MySQL情况下,更改lower_case_table_names的值。

四、网上解决方案

方法一:只修改my.cnf

1.添加lower_case_table_names=1

在服务器上找到my.conf文件,由于我是采取docker compose部署的MySQL,因此修改MySQL的配置文件后启动方式因自己安装的方式而异。

#忽略表名大小写
lower_case_table_names=1

[mysqld] 部分新增

 2.保存并退出
3.重启MySQL

问题:

问题描述:Different lower_case_table_names settings for server ('1') and data dictionary ('0').

出现问题是在重启MySQL容器的时候报错。

方法二:临时设置

注:重启MySQL会失效

1.登录MySQL
2.设置lower_case_table_names
SET GOLBAL lower_case_table_names = 1;
3.刷新权限
FLUSH PRIVILEGES;

问题:

1238 - Variable 'lower_case_table_names' is a read only variable

lower_case_table_names 是一个只读的系统变量,这意味着你不能在 MySQL 服务器运行时动态地更改它的值。这个变量必须在 MySQL 服务器启动时从配置文件(通常是 my.cnfmy.ini,取决于你的操作系统和安装方式)中读取,或者在首次初始化数据目录时设置。因此这个方案行不通。

五、解决方案(docker方式)

1.先备份MySQL数据库数据

(1)通过命令去备份

mysqldump -uroot -p[密码] [数据库] > [备份的sql]

(2)采用工具备份,如Navicat

2.停止MySQL

3.找到MySQL数据存放路径

4.备份数据目录

cp -ar datadir datadir_old

5.清空之前的数据目录

rm -rf datadir/*

6.配置docker compose的MySQL

注:如果之前存在先删除之前旧的运行MySQL容器。

在docker-compose.yml中配置MySQL。

mysql:restart: alwaysimage: mysql:8.0.35volumes:- ./mysql/datadir:/var/lib/mysql- ./mysql/conf/my.cnf:/etc/my.cnfenvironment:- "MYSQL_ROOT_PASSWORD=xxx"- "MYSQL_DATABASE=xxx"- "MYSQL_USER=xxx"- "MYSQL_PASSWORD=xxx"- "TZ=Asia/Shanghai"command: --lower_case_table_names=1  # 添加这一行来设置lower_case_table_names  ports:- "3306:3306"

配置如下:

7.重新用docker compose命令运行一个MySQL容器

docker compose up -d mysql

8.查看启动日志

docker logs 容器名/容器id

若没出现错误即为,设置MySQL忽略表名大小写成功。

9.将数据恢复

(1)将导出的数据原封导入到MySQL中

(2)将备份的数据目录全部复制到现在MySQL目录

10.验证

到此,MySQL更新lower_case_table_names=1,忽略表名大小写完成。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Spring Cloud应用框架】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

智慧校园的作用是什么?

在近几年,智慧校园以其独有的姿态,悄然改变着教育的面貌。想象一下,当物联网、大数据、人工智能这些前沿技术与传统校园深度融合,教育空间不再局限于实体教室,知识获取也不再受制于时间与地点,一个更加开放…

TikTok账号养号的流程分享

对于很多刚开始运营TikTok的新手小白来说,都会有一个同样的疑问,那就是:TikTok到底需不需要养号?这里明确告诉大家是需要养号的,今天就把我自己实操过的养号经验和策略总结出来,分享给大家。 一、什么是Ti…

AI智能盒子助力中钢天源设备工厂升级安全防护

中钢集团安徽天源科技股份有限公司成立于2002年3月27日,是中央企业中国中钢股份有限公司控股的上市公司,主导产品为永磁铁氧体器件、钕铁硼器件、四氧化三锰、锶铁氧体预烧料及各类磁选机等。 在中钢天源智能化升级过程中,采用并定制开发一系列厂区安全…

关于阿里云效流水线自动部署项目教程

1、登录阿里云效:阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台 2、点击左侧流水线: 3、在流水线界面,新建流水线 4、我的是php代码,因此选择php模版 5、创建之后添加流程线源,如下图 6、选择相应的源头。比…

微型操作系统内核源码详解系列五(1):arm cortex m3架构

系列一:微型操作系统内核源码详解系列一:rtos内核源码概论篇(以freertos为例)-CSDN博客 系列二:微型操作系统内核源码详解系列二:数据结构和对象篇(以freertos为例)-CSDN博客 系列…

团队协同渗透测试报告输入输出平台部署

目录 简介 文章来源 部署环境 文件下载 开始安装 系统初始化 免责声明 结语 简介 因应监管部需求,国内访问Docker源pull镜像开始变得复杂且困难起来了,大佬github给的在线/离线安装脚本跑了很久也无法拉取到镜像,所以将以前的镜像打…

自制一个Linux live固件镜像ISO可引导系统

使用母盘镜像制作两个虚拟,来制作一个包含基本需求的filesystem.squashfs文件,具体看下面的链接 使用的安装镜像 是Linux Mint 制作好的成品 https://cloud.189.cn/t/U32Mvi7FnyA3 (访问码:2nbo) 最简单制作LIVE CD…

express入门01服务器搭建以及get和post请求的监听

微搭提供了后端API的能力,但是不同的版本收费差别巨大,因为使用的门槛限制了中小企业使用低代码平台。那可不可以既要又要呢?答案是肯定的,那其实掌握一定的后端框架,借助我们在低代码中已经熟练掌握的技能其实是比较容…

【RK3588/算能/Nvidia智能盒子】AI“值守”,规范新能源汽车充电站停车、烟火及充电乱象

近年来,中国新能源汽车高速发展,产量连续8年位居全球第一。根据中国充电联盟数据,截至2023年6月,新能源汽车保有量1620万辆,全国充电基础设施累计数量为665.2万台,车桩比约2.5:1。 虽然新能源汽车与充电桩供…

java架构设计-COLA

参考:https://github.com/alibaba/COLA 架构 要素:组成架构的重要元素 结构:要素直接的关系 意义:定义良好的结构,治理应用复杂度,降低系统熵值,改善混乱状态 创建COLA应用: mvn …

在Linux系统中安装凸语言

凸语言在2023国产编程语言蓝皮书中的介绍如下: 凸语言gitee页面:凸语言: tu-lang 是一种动态类型编译型的通用编程语言, 已实现自举 (gitee.com) 使用git克隆源码: git clone https://github.com/tu-lang/tu.git 安装凸语言环境&#xff1a…

BEC攻击升级:针对企业的诈骗手法鉴赏

0x00 背景 商业电子邮件欺诈(Business Email Compromise,BEC)是一种社会工程学攻击,主要针对企业,通常以财务欺诈和商业机密窃取为动机。据微软的统计数据显示,自2016年以来,BEC攻击已经导致超…

ChromeOS 逐渐靠近安卓

ChromeOS 逐渐 “安卓化” 谷歌在博客中透露,将在ChromeOS底层更广泛地使用和Android相同的技术栈。一个具体的例子是,ChromeOS现在已经开始使用Android的蓝牙协议栈,取代了之前使用的自己的协议栈。这次改变不仅提高了蓝牙配对速度&#xf…

总结一下 C# 如何自定义特性 Attribute 并进行应用

前言 Attribute(特性)是一种用于为程序元素(如类、方法、属性等)提供元数据信息的方法。 特性是一种声明式的信息,附加到程序元素上,提供额外的数据用于描述和控制这些元素的行为。 在编译和运行时&…

零基础入门学用Arduino 第四部分(一)

重要的内容写在前面: 该系列是以up主太极创客的零基础入门学用Arduino教程为基础制作的学习笔记。个人把这个教程学完之后,整体感觉是很好的,如果有条件的可以先学习一些相关课程,学起来会更加轻松,相关课程有数字电路…

GPT3.5的PPO目标函数怎么来的:From PPO to PPO-ptx

给定当前优化的大模型 π \pi π,以及SFT模型 π S F T \pi_{SFT} πSFT​ 原始优化目标为: max ⁡ E ( s , a ) ∼ R L [ π ( s , a ) π S F T ( s , a ) A π S F T ( s , a ) ] \max E_{(s,a)\sim RL}[\frac{\pi(s,a)}{\pi_{SFT}(s,a)}A^{\pi_{SFT}}(s,a)] m…

什么牌子的灯好不伤眼?带你了解什么灯对眼睛伤害最小

眼睛是人类获取信息最重要的感官器官之一,而近视则会导致视力模糊,进而影响学习效果和生活品质。因此,什么灯对眼睛伤害最小成为许多人迫切寻找的目标。本文将为各位家长解答目前许多家长选择为孩子保护视力的产品——护眼台灯。护眼台灯以其…

「小爱同学」接入豆包大模型;华为鸿蒙 OS 成为中国第二大操作系统丨 RTE 开发者日报 Vol.224

开发者朋友们大家好: 这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文…

MySQL数据库入门

1、MySQL概述 MySQL官方网站 https://www.mysql.com/downloads/ MySQL被Oracle公司收购了,作者又重新编写了一个开源的数据库管理系统,Mariadb 2、MySQL产品&版本 2、数据库在网站架构中的角色 LAMP LNMP网站架构 3、安装MySQL-基于yum 查…