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。

  • 相关阅读:
    Android AlertDialog警告对话框实现
    Android状态栏通知Status Bar Notification
    Android spinner控件的实现
    Winform之UI后台线程
    Winform之自定义控件
    WebForm原理,aspx服务器端与客户端源码比较
    IHttpModule之闲扯
    [算法]方正面试题:N×N矩阵螺旋打印输出
    DOTA版设计模式——工厂方法
    Window服务
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13302403.html
Copyright © 2011-2022 走看看