• 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。

  • 相关阅读:
    让Sendmail和Dovecot使用AD进行用户认证
    在dhcpd.conf中配置静态路由
    IPhone4与Exchange 2010同步失败
    /*从文本中读取文件*/
    EM数据包按规则更新
    Crystal Report Show in Web With ParameterField
    /*读取xml数据*/
    上传文件
    新的网站
    【练习】哥德巴赫猜想验证程序
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13302403.html
Copyright © 2020-2023  润新知