MySQL表名不区分大小写的设置方法

MySQL表名不区分大小写的设置方法

mysql在windows系统下安装好后,默认是对表名大小写不敏感的,但是在linux下,一些系统需要手动设置。 用root登录,打开并修改 /etc/my.cnf;在[mysqld]节点下,加入一行: lower_case_table_names=1。重启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()); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值