【问题标题】:mysql drop database which exists with same namemysql删除同名的数据库
【发布时间】:2018-02-22 09:46:41
【问题描述】:

我的 mysql/mariadb 服务器有一个奇怪的状态。

当我执行show databases; 时,会得到以下结果:

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| MYDATABASENAME         |
| mydatabasename         |

当我执行drop database MYDATABASENAME; 时,数据库mydatabasename 会删除小写字母而不是大写字母。如果我再次执行drop database MYDATABASENAME;,它会说

ERROR 1008 (HY000): Can't drop database 'mydatabasename';数据库没有 存在

更新

在 my.cnf 中,我设置了 lower_case_table_names=1,这导致 mysql 服务器以小写格式处理所有表/数据库。请参阅下面的答案。

我现在的问题是,如何删除大写数据库“MYDATABASENAME”?

【问题讨论】:

  • 在你的 drop 命令中尝试区分大小写的排序规则

标签: mysql mariadb


【解决方案1】:

如果您在my.cnf 中设置了lower_case_table_names=1,则mysql 以小写格式处理/存储所有表和数据库。所以禁用该属性,然后再次执行 drop 命令解决了问题。

【讨论】:

    【解决方案2】:

    最好不要尝试覆盖lower_case_table_names 的基于操作系统的默认值。

    MySQL/MariaDB 依赖于基于表和数据库名称的文件和目录名称。但是 Windows 忽略大小写; *nix 没有。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-22
      • 1970-01-01
      • 1970-01-01
      • 2013-05-07
      • 1970-01-01
      • 2014-04-13
      相关资源
      最近更新 更多