日期:2014-05-16  浏览次数:20643 次

linux下解决mysql区分大小写问题

文章摘抄至?http://hi.baidu.com/liyx123106/item/6be290cf6764f876bcef691a

?

MySQL在Linux下采用 rpm方式安装后默认是:数据库名与表名\表的别名\变量名是严格区分大小写?

修改大小写的方法:

1.用root帐号登录,在/etc/my.cnf 或 /etc/myql/my.cnf中的[mysqld]后添加lower_case_table_names=1

? ? 操作命令: vi /etc/my.cnf

	
[root@localhost ~]# vi /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
lower_case_table_names=1
# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
# symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

?

备注:添加lower_case_table_names=1,表示mysql不区分大小写,这段代码必须在[mysqld_safe]之前。

?

2.重启MySQL服务

操作命令: /etc/init.d/mysql restart

或者

service mysqld restart

?

3.设置成功,则不再区分表名的大小写。

注意: ?

? ? ? ? 如果在/etc或/etc/mysql找不到my.cnf的话,需要从/usr/share/mysql/下找到*.cnf文件,拷贝其中一个到/etc/并改名为my.cnf,然后放到/etc/下面去。

? ? ? ? 操作命令:cp /usr/share/mysql/my-*.cnf /etc/my.cnf

?

mysql有四个my-*.cnf文件:

?

my-small.cnf是为了小型数据库而设计的。

?

my-medium.cnf是为中等规模的数据库而设计的。?

?

my-large.cnf是为专用于一个SQL数据库的计算机而设计的。?

?

my-huge.cnf是为企业中的数据库而设计的。?

?

题外话:MySQL在Windows下不区分大小写,如果在my.ini 里面的mysqld部分加入lower_case_table_names=0的话,则导入导出时会对大小写有区别。