我正在使用Ubuntu 13.10和MySQL 5.6,并且我知道默认情况下在Ubuntu(和其他* nix环境)中数据库名称和表名称区分大小写。

现在,我想使MySQL可以区分大小写在Ubuntu中不敏感。

可以吗?如果是,该怎么办?

#1 楼

打开终端并编辑/etc/mysql/my.cnf

sudo nano /etc/mysql/my.cnf


[mysqld]部分下面。添加:

lower_case_table_names = 1


重新启动mysql

sudo /etc/init.d/mysql restart


然后在此处检查:

mysqladmin -u root -p variables


评论


如果此部分不可用,则必须添加。否则重启将失败。

–亚历克斯ander
17 Mar 26 '17 at 18:44

不幸的是,这不再适用于MySQL 8.0。必须在初始化之前进行设置。

–托马斯
20 Jul 23 '14:25

#2 楼

如果您在具有现有表的数据库中更改lower_case_table_names,则堆栈溢出:MySQL>表不存在。但这确实(或应该)会发生。
在这种情况下,此答案的注释对我有帮助:

我恢复了值,重新启动了数据库,导出了表,设置了值回到1,重新启动数据库,重新导入表,一切再次正常。


评论


发生在我身上,我不知道我的最大心律为197 bpm ;-)

–萨尔
20 Dec 8'在18:13

#3 楼

这个问题让我很痛苦,Doctrine生成了大写的/ CamelCase表名,MySQL将它们存储为小写!

通过更改my.cnf并添加

lower_case_table_names = 1


my.cnf:在LAMPP / XAMPP下可以找到



... :

/opt/lampp/etc/my.cnf


独立的mysql服务器:

/etc/mysql/my.cnf


之后重启MySQL服务器,一切都会好的。