【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.mzph.cn/web/29629.shtml

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

相关文章

day03 子查询分页存储过程

目录 子查询 介绍: 子查询规范 子查询分类 模糊查询 注意事项和技巧 分页查询 作用: LIMIT关键字使用 指定初始位置 不指定初始位置 分页 视图 介绍: 优点 创建视图 嵌套视图 删除视图 修改视图 更新视图 存储过程 介绍…

RT-Thread PIN设备

RT-Thread PIN设备 RT-Thread PIN设备驱动框架RT-Thread PIN设备驱动层次图RT-Thread PIN设备注册RT-Thread PIN设备注册函数 RT-Thread PIN设备操作函数pin_getpin_modepin_writepin_readpin_attach_irqpin_detach_irqpin_irq_enable PIN设备又叫GPIO设备,是MCU输入…

SpringSecurity-入门代码

创建SpringBoot项目 参考文章: 【环境搭建】使用IDEA创建SpringBoot项目详细步骤_idea创建spring boot项目-CSDN博客 编写helloworld代码 RestController public class HelloController {GetMapping("/hello")public String hello(){return "hel…

深入了解SD-WAN:企业广域网的未来

在讨论SD-WAN之前,我们先来了解一下WAN的基本概念。WAN(广域网)是一个连接多个地理位置分散的局域网的通信网络。在企业中,WAN通常连接总部、分支机构、托管设施和云服务等多个网络节点。广域网允许用户共享各种应用和服务&#x…

【AI绘画】新手小白看这篇就够啦!国产PS AI插件超好入门!

随着人工智能技术的飞速发展,Photoshop作为设计师们不可或缺的工具,也在不断地融入AI技术,以提升设计效率和效果。最近米兔用了一款AI绘画软件StartAI,被其强大的功能和易用性经验到了,下面跟大家详细分享一下这款ps插…

ViNT: A Foundation Model for Visual Navigation

介绍 现存的问题:预训练的方式在很多领域取得了成功,但是由于环境、平台和应用程序的绝对多样性,因此很难应用在机器人领域。 那么想要做移动机器人的基础模型需要什么? 本文定义了一个机器人领域的基础模型,可以实…

文字炫酷祝福 含魔法代码

效果下图&#xff1a;&#xff08;可自定义显示内容&#xff09; 代码如下&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initi…

移动机器人程序节点崩溃的处理

对于一些特殊情况例如程序节点崩溃&#xff0c;可能需要一些特殊的处理方法。处理目的是为了保证程序出现特殊异常情况导致崩溃也能在每人干预的情况下正常运行并完成某些初始化状态。常见处理工程化方法如下。 针对节点崩溃问题&#xff0c;可以设置守护进程或脚本来监控程序运…

TS中的内置工具

在TypeScript&#xff08;TS&#xff09;中&#xff0c;有多种内置的工具和类型工具&#xff0c;它们帮助开发者更有效地编写和维护类型安全的代码。以下是一些主要的内置工具及其功能概述&#xff1a; 类型别名&#xff08;Type Aliases&#xff09;&#xff1a; 类型别名是一…

代码随想录算法训练营第42天 [1049. 最后一块石头的重量 II 494. 目标和 474.一和零]

代码随想录算法训练营第42天 [1049. 最后一块石头的重量 II 494. 目标和 474.一和零] **一、1049. 最后一块石头的重量 II ** 链接: 代码随想录. 思路&#xff1a;石头相撞重量最小&#xff0c;最小的情况就是刚好分为两组大小相同的&#xff0c;这样相撞后重量就为0 所以转化为…

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

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

mysql--安装跳过验证修改密码安全加固

安装mysql 配置mysql的yum源 [rootVM-0-14-rockylinux ~]# tee /etc/yum.repos.d/mysql.repo << EOF > [MYSQL] > namemysql > baseurlhttps://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-5.7-community-el7-x86_64 > gpgcheck0 > EOF yum安装mysq…

Playwright工作原理

执行test时&#xff0c;有哪些关键步骤 当我们用Playwright编写一段简单的test script&#xff0c;代码如下所示&#xff1a;在test case中第一段代码就是await page.goto(xxxxx) import { test, expect } from playwright/test;test(test, async ({ page }) > {await page…

浅谈LavelDB

简介 LevelDB 是一个开源的轻量级键值存储库&#xff0c;由 Google 开发&#xff0c;用于提供快速的键值存储和支持读写大量数据。LevelDB 具有高性能、快速的读取和写入速度以及支持原子操作的特点&#xff0c;适合用于需要高效存储和检索键值数据的场景。 LevelDB 主要特点…

NVIDIA新模型Nemotron-4:98%的训练数据是合成生成的,你敢信?

获取本文论文原文PDF&#xff0c;请公众号 AI论文解读 留言&#xff1a;论文解读 标题&#xff1a;Nemotron-4 340B Technical Report 模型概述&#xff1a;Nemotron-4 340B系列模型的基本构成 Nemotron-4 340B系列模型包括三个主要版本&#xff1a;Nemotron-4-340B-Base、…

77道经典的软件测试面试题(答案+文档)

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 1、问&#xff1a;你在测试中发现了一个bug&#xff0c;但是开发经理认为这不是一个bug&#xf…

【ARM-Linux篇】POSIX消息队列

System V消息队列POSIX 消息队列主 要 函 数#include <sys/msg.h> int msgget(key_t key, int oflag) int msgsnd(int msqid, const void * ptr, size_t length, int flag) ssize_t msgrcv (int msqid, void *ptr, size_t length, long type, int flag) int msgctl(int m…

Lua迭代器详解(附加红点功能实例)

Lua迭代器详解与用法 1. 什么是迭代器2. 为什么需要理解迭代器的原理3. 迭代器的实现0. 闭包1. 有状态迭代器2. 无状态迭代器 4. 红点树系统基础 1. 什么是迭代器 迭代器是一种能让我们遍历一个集合中的所有元素的代码结构。比如常用ipairs()和pairs()。 2. 为什么需要理解迭代…

SSH生成SSH密钥(公钥和私钥)

在设置SSH服务时&#xff0c;生成SSH密钥&#xff08;公钥和私钥&#xff09;是一个常见的任务。这些密钥用于安全地进行身份验证&#xff0c;无需输入密码。以下是如何生成SSH密钥的步骤&#xff1a; 1. 生成SSH密钥对 首先&#xff0c;您需要在客户端机器上生成一个SSH密钥…

算法设计与分析期末复习题

一&#xff1a;程序阅读分析题&#xff08;共40分&#xff09; 1.&#xff08;8分&#xff09;阅读“算法1”&#xff0c;分析算法1的功能、时间复杂度。 答案&#xff1a;经典的汉诺塔问题&#xff0c;其目标是将 n 个不同大小的盘子从柱子 A 移动到柱子 C&#xff0c;借助柱…