【数据库】mysql忽略大小写设置

查看大小写配置:

进入mysql数据库内执行

show variables like '%lower%';
敏感;
±-----------------------±------+
| Variable_name | Value |
±-----------------------±------+
| lower_case_file_system | ON |
| lower_case_table_names | 0 |
±-----------------------±------+

不敏感:
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| lower_case_file_system | OFF   |
| lower_case_table_names | 1     |
+------------------------+-------+

一、配置文件:

vim编辑该文件

vim /etc/my.cnf

#在【mysqlld】下添加下方代码表示不区分大小写

lower_case_table_names=1

二、重启mysql:

systemctl restart mysqld.service
### 配置 Navicat 实现 MySQL 列名或字符串比较时忽略大小写 为了使 MySQL 数据库在通过 Navicat 访问时实现列名或字符串比较时不区分大小写,主要依赖于服务器端的配置而非客户端工具本身。具体来说,可以通过修改 `lower_case_table_names` 参数来控制表名不区分大小写的行为[^2]。 然而,在实际操作中,更常见的是调整字符集和排序规则 (collation),这不仅影响到表名还会影响到所有涉及字符串的操作。当创建数据库时设定合适的字符集可以确保整个数据库中的数据处理都遵循相同的规则[^3]。 对于已经存在的数据库,要改变其行为以适应新的需求,则需执行如下 SQL 命令: ```sql ALTER DATABASE your_database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 此命令会更改现有数据库及其内所有表格使用的默认字符集为 `utf8mb4` 并采用 `utf8mb4_unicode_ci` 排序方式,其中 `_ci` 后缀表示 case-insensitive(即不敏感于字母大小写)。这样做的好处是可以让所有的查询语句自动按照这种规则来进行匹配而无需额外编码逻辑上的改动。 另外需要注意的是,虽然上述措施可以在很大程度上解决问题,但如果应用程序中有硬编码了特定大小写的条件判断,则仍可能遇到问题;因此建议全面测试应用功能后再上线生产环境。 最后提醒一点,关于 `lower_case_table_names=1` 的设置应当谨慎对待,因为它会影响文件系统的命名机制,并可能导致跨平台移植性方面的问题。除非确实有这方面的需求并充分理解潜在风险,否则一般情况下推荐保持默认值不变。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值