zoukankan      html  css  js  c++  java
  • 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。

  • 相关阅读:
    根据连接速度选择地址访问
    ASP.NET探针
    C#格式化成小数
    常用经典SQL语句
    比较两个DataSet,并产生增量数据
    实用JS代码大全
    写入、读取、清除Cookie的类
    Base64加密解密
    HttpModule,HttpHandler,HttpHandlerFactory简单使用
    任务栏自定义怎么删除过去项目
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13302403.html
Copyright © 2011-2022 走看看