mysql大小写敏感配置(centos系统;配置了my.cnf无效问题;Table '' doesn't exist)

一、导语

一次经历,将oracle数据库迁移到mysql中,因为oracle表名都是大写,现在迁移到mysql中也是大写,但是有些sql还是小写,oracle哪边是设置了大小写不敏感,但是mysql默认是大小写敏感,今天这里分享一下如何设置mysql表名大小写不敏感。

二、首先查看当前mysql的大小写敏感配置

  1. 运行下面sql查看

show global variables like ‘%lower_case%’;

  1. 查询出来的结果如下:
Variable_name Value
lower_case_file_system OFF
lower_case_table_names 0
  1. lower_case_file_system 表示当前系统文件是否大小写敏感,只读参数,无法修改。ON 大小写不敏感 OFF 大小写敏感 (ps:这个我们不需要关注)
  2. lower_case_table_names表示表名是否大小写敏感,可以修改。
    lower_case_table_names = 0时,mysql会根据表名直接操作,大小写敏感。
    lower_case_table_names = 1时,mysql会先把表名转为小写,再执行操作。

三、修改mysql的my.cnf文件

  1. centos系统中找到my.cnf 的mysql配置文件,一般在/etc/my.cnf 内容如下:
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Recommended in standard MySQL setup
lower_case_table_names=1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
  1. 第七行添加 lower_case_table_names=1 这个配置。(注意这里的这个配置,一定要放在配置文件的中间,否在不启作用,不要放在底部,至少我这里放在底部总是不生效。)

猜你喜欢

转载自blog.csdn.net/qq_37054881/article/details/88635378