• linux下Mysql的大小写敏感


    现象

    windows开发环境下一切正常,部署到linux服务器上后,启动系统报以下错误:

    Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'soc.QRTZ_LOCKS' doesn't exist

    错误信息:找不到soc数据库下的QRTZ_LOCKS表!但是我打开navicat看到soc库下是存在qrtz_locks表的,而且同样的数据库和代码在windows下是没问题的。

    问题

    1:mysql对字段名,表名,数据库名是敏感的;

    2:但是在windows下是默认不敏感,在linux下默认是敏感的;

    3:所以windows下,在代码中访问mysql的QRTZ_LOCKS表时,mysql可以用它的qrtz_locks表来接受sql请求;

    4:但是在linux下,如果在代码中访问mysql的QRTZ_LOCKS表时,mysql不会用qrtz_locks表来接受sql请求,而会报找不到QRTZ_LOCKS表的错误。

    解决方案

    在windows下执行命令,查看mysql系统变量可以看到如下:

    show variables like '%lower_case_table_names%';

    这里写图片描述

    值为1,表示是大小写不敏感,而linux下的mysql的此系统变量是0,表示是大小写敏感

    可以修改linux下mysql的此系统变量的值为1,让其大小写不敏感就可以解决开头说的问题了。

    linux下修改大小写敏感的系统变量

    1:找到mysql的配置文件

    /etc/mysql/mysql.conf.d/mysqld.cnf

    2:在[mysqld]标签下添加

    lower_case_table_names=1

    mysql配置

    3:重启mysql服务,并查看该系统变量,会发现变量值已经变为1。

  • 相关阅读:
    Zookeeper and The Infinite Zoo(CF1491D)(位运算)
    树上差分
    最近公共祖先
    极角排序
    最长路spfa
    树的基础
    树的遍历~
    最小圆覆盖板子
    动态凸包(询问点是否在凸包内部)
    凸包内最大三角形
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13302403.html
Copyright © 2020-2023  润新知