mysql表名大小写不敏感设置

问题描述

我使用navicat远程连接centos7主机创建数据库,设置
mysql表名大小写不敏感设置_第1张图片
PV3Y1QK4FY{0@56Y59%D8ER.png

但是应用系统跑的时候sql对表名大小写敏感,例如sys_log表,使用sys_Log就会找不到表,不知道怎么回事,我一直以为设置utf8_general_ci就可以做到表名不敏感,其实不是的,这是我的一个误区,记录一下,尴尬。。。。,为什么我会这样认为,因为本地的mysql我从来没有做过别的设置,但是我写的应用却没有报这个错,依然能够正确的访问表,一脸蒙比

简记

ci是 case insensitive, 即 "大小写不敏感", a 和 A 会在字符判断中会被当做一样的;bin 是二进制, a 和 A 会别区别对待.例如你运行:SELECT * FROM table WHERE txt = 'a'那么在utf8_bin中你就找不到 txt = 'A' 的那一行, 而 utf8_general_ci 则可以.

解决方法

vim /etc/my.cnf

# The MySQL server  
[mysqld]  
lower_case_table_names=1 

重启sql服务

systemctl restart mysql

你可能感兴趣的:(mysql表名大小写不敏感设置)