我现在装的MYSQL是大小写不区分的,要怎么设置MYSQL对大小写区别,还是在安装的时候设置?要求对所有的都要大小写区分,如表名,列名,表的数据,存储过程等。

解决方案 »

  1.   

    1、linux下mysql安装完后是默认:区分表名的大小写,不区分列名的大小写; 2、用root帐号登录后,在/etc/my.cnf 中的[mysqld]后添加添加lower_case_table_names=1,重启MYSQL服务,这时已设置成功:不区分表名的大小写; lower_case_table_names参数详解: lower_case_table_names = 0 其中 0:区分大小写,1:不区分大小写 MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:    1、数据库名与表名是严格区分大小写的;    2、表的别名是严格区分大小写的;    3、列名与列的别名在所有的情况下均是忽略大小写的;    4、变量名也是严格区分大小写的; MySQL在Windows下都不区分大小写。 
    3、如果想在查询时区分字段值的大小写,则:字段值需要设置BINARY属性,设置的方法有多种: A、创建时设置: 
    CREATE TABLE T( 
    A VARCHAR(10) BINARY 
    ); B、使用alter修改: 
    ALTER TABLE `tablename` MODIFY COLUMN `cloname` VARCHAR(45) BINARY; C、mysql table editor中直接勾选BINARY项。
    文章出处:DIY部落(http://www.diybl.com/course/7_databases/mysql/Mysqljs/2008829/138813.html)
      

  2.   

    MYSQL是在WINDOWS下的,不光要区分字段值的大小写的,其他的也要。
      

  3.   

    配置文件我都尽量不动,怕改坏了,用mysqladminstrator就可以改了
    不会传图片,手写吧
    在mysqlAdministrator下的Startup Parameters中有Advanced的标签
    这个标签下的Make table names case insensitive就是管理大小写的
    自己动手试试吧
      

  4.   

    3楼说的方法的要如何实现,4楼的你的那个Make table names case insensitive没找到。
      

  5.   

    mysql> create table swordadsl(id int,col varchar(10) CHARACTER SET latin1 COLLATE latin1_bin);
    Query OK, 0 rows affected (0.09 sec)mysql> insert into swordadsl values (1,'AAAA');
    Query OK, 1 row affected (0.01 sec)mysql> insert into swordadsl values (2,'aaaa');
    Query OK, 1 row affected (0.06 sec)mysql> select * from swordadsl;
    +------+------+
    | id   | col  |
    +------+------+
    |    1 | AAAA |
    |    2 | aaaa |
    +------+------+
    2 rows in set (0.00 sec)mysql> select * from swordadsl where col='AAAA';
    +------+------+
    | id   | col  |
    +------+------+
    |    1 | AAAA |
    +------+------+
    1 row in set (0.08 sec)mysql>
      

  6.   

    ls 正解,设置 COLLATE  就好了。比如 
    create table xxx(...) charset utf8 collate utf8_general_si;
      

  7.   

    utf8_general_si;
    这种不行, si
    i代表的就是不区分大小写!