zoukankan      html  css  js  c++  java
  • MySQL大写和小写问题

    近期在将一个windows的mysql数据库转到linux上时,碰到表找不到问题,详细分析了下后发现原来是大写和小写问题。

     

    在 MySQL 中,数据库和表对就于那些文件夹下的文件夹和文件。

    因而,操作系统的敏感性决定数据库和表命名的大写和小写敏感。这就意味着数据库和表名在 Windows 中是大写和小写不敏感的,而在大多数类型的 Unix 系统中是大写和小写敏感的。

     

    奇怪的是列名与列的别名在全部的情况下均是忽略大写和小写的。而表的别名又是区分大写和小写的。

     

    要避免这个问题,你最好在定义数据库命名规则的时候就全部採用小写字母加下划线的组合。而不使用不论什么的大写字母。

     

    或者也能够强制以 -O lower_case_table_names=1 參数启动 mysqld(假设使用 --defaults-file=.../my.cnf 參数来读取指定的配置文件启动 mysqld 的话,你须要在配置文件的 [mysqld] 区段下添加一行 lower_case_table_names=1)。这样MySQL 将在创建与查找时将全部的表名自己主动转换为小写字符(这个选项缺省地在 Windows 中为 1 ,在 Unix 中为 0。从 MySQL 4.0.2 開始。这个选项相同适用于数据库名)。

     

    当你更改这个选项时,你必须在启动 mysqld 前首先将老的表名转换为小写字母。

     

    换句话说,假设你希望在数据库里面创建表的时候保留大写和小写字符状态,则应该把这个參数置0: lower_case_table_names=1 。否则的话你会发现相同的sqldump脚本在不同的操作系统下终于导入的结果不一样(在Windows下全部的大写字符都变成小写了)。

     

    改动/etc/my.cnf

     

    [mysqld]

     

    lower_case_table_names = 1

     

    当中 0:区分大写和小写,1:不区分大写和小写

     

    MySQL在Linux下数据库名、表名、列名、别名大写和小写规则是这种:

     

    1、数据库名与表名是严格区分大写和小写的。

     

    2、表的别名是严格区分大写和小写的;

     

    3、列名与列的别名在全部的情况下均是忽略大写和小写的。

     

    4、变量名也是严格区分大写和小写的;

     

    MySQL在Windows下都不区分大写和小写。

  • 相关阅读:
    jenkins配置html报告
    JMeter并发测试(设置集合点)
    jmeter压力测试 设置一秒发送一次请求,一秒两次请求
    jmeter压力测试的简单实例+badboy脚本录制
    JMeter问题集
    英语自然拼读法基本规则和小窍门
    Jmeter工具做性能测试 常见的错误汇总
    如何使用JDK自带工具JConsole
    第七章 JMeter 逻辑控制器
    第六篇:JMeter 断言
  • 原文地址:https://www.cnblogs.com/mqxnongmin/p/10781617.html
Copyright © 2011-2022 走看看