本文介绍了linux下mysql区分大小写的解决方法,添加lower_case_table_names=1,表示mysql不区分大小写,这段代码必须在[mysqld_safe]之前。
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
[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
或者
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是为企业中的数据库而设计的。
my-medium.cnf是为中等规模的数据库而设计的。
my-large.cnf是为专用于一个SQL数据库的 计算机而设计的。
my-huge.cnf是为企业中的数据库而设计的。
备注:
MySQL在Windows下不区分大小写,如果在my.ini中mysqld部分加入lower_case_table_names=0的话,则导入导出时会对大小写有区别。