mysql表名称区分大小写问题

博客指出启动服务报错,登录MySQL数据库查看后,执行SQL确认是数据库表名区分大小写的问题。解决方案为用root登录,修改 /etc/my.cnf,在[mysqld]节点下加入 lower_case_table_names=1,最后重启MySQL服务。

1.启动服务报错
在这里插入图片描述
2.登陆到mysql数据库查看。发现是存在的。
在这里插入图片描述
3.执行sql确认下。是数据库表名区分大小写的问题。
在这里插入图片描述
解决方案:

1.用root登录,打开并修改 /etc/my.cnf;

2.在[mysqld]节点下,加入一行: lower_case_table_names=1。

3.重启mysql服务systemctl restart mysqld

### Spring Boot MySQL 区分大小写解决方案 在处理Spring Boot与MySQL之间的大小写敏感问题时,可以通过调整MySQL配置文件来实现区分大小写的效果。具体来说,在`my.cnf`或`my.ini`配置文件中设置`lower_case_table_names=1`参数可以使得数据库忽略大小写差异[^3]。 对于已经在运行的应用程序而言,如果遇到因为大小写不同而导致查询失败的情况,则可以在应用程序属性文件(`application.properties`)里指定JPA实体扫描规则以及SQL日志级别以便更好地调试和理解底层行为: ```properties # application.properties spring.jpa.hibernate.naming.physical-strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy spring.datasource.url=jdbc:mysql://localhost:3306/your_database?useSSL=false&serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8 logging.level.org.hibernate.SQL=DEBUG ``` 此外,还可以通过自定义物理命策略类继承`SpringPhysicalNamingStrategy`并重载其中的方法来自定义转逻辑,从而确保即使是在代码层面使用不同的命约定也不会影响到最终映射至数据库中的对象名称[^2]。 最后值得注意的是,当决定更改服务器级别的配置项如`lower_case_table_names`时需谨慎行事,因为它可能会影响到现有数据结构及其兼容性;因此建议先在一个独立环境中测试后再推广到生产环境当中去[^1]。 ```java import org.hibernate.boot.model.naming.Identifier; import org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl; public class CustomPhysicalNamingStrategy extends PhysicalNamingStrategyStandardImpl { @Override protected Identifier getTableNameIdentifier(String name) { return new Identifier(name.toLowerCase(), isQuoted()); } } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JavinLu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值