我的mysql / mariadb服务器中有一个奇怪的状态 .
当我执行 show databases;
时,它得到以下结果:
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| MYDATABASENAME |
| mydatabasename |
当我执行 drop database MYDATABASENAME;
时,数据库 mydatabasename
小写的一个被删除而不是大写的一个 . 如果我然后再次执行 drop database MYDATABASENAME;
它说
ERROR 1008(HY000):无法删除数据库'mydatabasename';数据库不存在
UPDATE
在my.cnf中,我设置了lower_case_table_names = 1,这导致mysql服务器以小写格式处理所有表/数据库 . 请参阅下面的答案 .
我现在的问题是,如何删除大写数据库“MYDATABASENAME”?
2 回答
如果你在
my.cnf
中设置了lower_case_table_names=1
,则mysql以小写格式处理/存储所有表和数据库 . 因此禁用该属性,然后再次执行drop命令修复了该问题 .最好不要尝试覆盖
lower_case_table_names
的基于操作系统的默认值 .MySQL / MariaDB依赖于基于表和数据库名称的文件和目录名称 . 但Windows无视案例; * nix没有 .