当前位置: 首页 > article >正文

linux mysql 8 大小写敏感问题

问题描述

我在linux上用docker安装了mysql8容器。并部署了几个网站服务。最近,我又部署了一个网站系统(.net)上去,运行起来后MySqlConnector报了一个错:Table 'xxx.Sys_User' doesn't exist 。事实上该网站系统能在windows上正常运行。

原因分析

在Linux系统中数据库名和表名对大小写敏感,而在Windows中对大小写不敏感。默认情况下,你在Linux上安装的Mysql是大小写敏感的,而在Windows版的Mysql默认大小写不敏感。这个是一个很常见的问题,大多数人都会遇到。通过在mysql中输入一下命令可以验证这一点:SHOW VARIABLES LIKE 'lower_case_%'; 打印信息如下:
在这里插入图片描述
在这里插入图片描述

解决方案

解决方案有两个:

1、修改Linux版mysql默认配置,需要重装mysql。

重装Linux版本mysql,然后在首次打开mysql之前修改mysql配置文件,将上面两个值设置成和windows一样。注意,此方案需要你先备份好所有数据库。
具体操作网上参考文章很多:如:linux系统中mysql8.0版本修改大小写不敏感(配置表名不区分大小写)

2、直接改表名

由于上面说的Linux和win仅仅是对数据库名和表名存在大小写敏感上差异,而对表的字段名不存在大小写敏感的问题。如果你的mysql已经在Linux上运行一段时间,已经装了几个数据库,备份数据库很麻烦,并且你的数据表不多(30张以内)的话,比较推荐的做法是,直接修改你出错的数据库的所有表名。
比如:我的数据库里有一张表Sys_User。由于win mysql 不区分大小写,因此 mysql 里存储的表名是小写的:【sys_user】 。我们直接把它改成【Sys_User】即可。
参考文章:填坑 | .NET core项目远程部署后连接数据库 mysql表大小写敏感问题
贴一下修改前后的效果图:
修改前:
在这里插入图片描述
修改后:
在这里插入图片描述

最后,引申出一个数据库命名规范问题

由此,我们可以得出,一个好的数据库命名规范是:数据库名、数据表名、表字段名全用小写命名,单词之间用下划线(_)连接。
参考链接:mysql - 命名规范/命名规则/sql规范/sql规则


http://www.kler.cn/a/448047.html

相关文章:

  • 服务器数据恢复—V7000存储中多块磁盘出现故障导致业务中断的数据恢复案例
  • 文件解析漏洞中间件(iis和Apache)
  • PostgreSQL标识符长度限制不能超过63字节
  • Unity 3D饼状图效果
  • 1小时放弃Rust(2): 两数之和
  • 【LeetCode】45.跳跃游戏II
  • Android学习(五)-Kotlin编程语言-面向对象中的 继承-构造函数-接口三模块学习
  • MySQL 在window免安装启动
  • GVRP自动创建及其注销(eNSP)
  • 1688跨境代购代采业务:利用API实现自动化信息化
  • Android-帧布局FrameLayout
  • cmd初使用windows-docker时的一些小小问题
  • K8S日志采集与监控方案介绍
  • 如何用发链框架,快速构建一条区块链?
  • Scratch游戏推荐 | 8球台球——体验真实台球对战乐趣! ✨
  • 【085】基于51单片机PID直流电机控制系统【Proteus仿真+Keil程序+报告+原理图】
  • Java实现贪吃蛇游戏
  • tslib(触摸屏输入设备的轻量级库)的学习、编译及测试记录
  • 【go每日一题】:并发任务调度器
  • 科技查新对专利申请有什么帮助?
  • 考前倒计时98天
  • 【华为OD-E卷-通信误码 100分(python、java、c++、js、c)】
  • Vue3之性能优化
  • 一起学Git【第二节:创建版本库】
  • Solaris-IPMP配置
  • 概率论得学习和整理30: 用EXCEL 描述泊松分布 poisson distribution