【问题标题】:Mysql create database with new database locationMysql使用新的数据库位置创建数据库
【发布时间】:2009-10-22 14:50:17
【问题描述】:

几个月前我问过a question regarding how to change database location at runtime - 我还没有得到任何解决这个问题的方法。

我需要在 MySQL 中创建超过 32,000 个数据库。 MySQL数据文件夹的默认数据位置,在该位置创建32,000个数据库后,我想将数据目录更改为其他位置。我打算通过 Java 代码来做到这一点。

但在此之前,谁能告诉我这是否可能?

我真的需要将此作为一项要求来实现。请帮我解决这个问题。

很抱歉,如果我在此描述的任何地方不清楚,但如果你们都需要更多信息,请告诉我。

【问题讨论】:

  • 如果我错了,请纠正我,但是您想在默认的 MySQL DB 目录中创建 32,000 个数据库,但又想在另一个目录中创建所有其他数据库?如果不重新编译 MySQL,我认为这是不可能的。
  • 我想我明白你想要做什么......但说真的,你为什么要这样做?
  • 嗨 lan 和 Martin,你的意思是 lan,是的,我想在默认的 mysql db 目录中创建 32000 个数据库,甚至更多,而不需要重新编译 MySQL。由于我们的服务器无法关闭。是的,马丁我需要这样做。有什么出路请帮助我。
  • 您正在尝试在生产系统上使用并非设计为这样做的系统做一些事情,甚至无法重新启动服务(这将导致大约 10 秒的停机时间)?我恳请您重新考虑您的要求。
  • 如果这不是您的实现的设计问题并且仅在分区类型和/或操作系统上,则更改分区类型和/或操作系统。

标签: mysql sql directory


【解决方案1】:

这听起来很难。我不明白为什么 32000 - mysql 拒绝创建比这更多的数据库?你得到什么错误?似乎是任意的 - 也许这是一个可以更改的配置变量?

几种可能性。你可以运行more than one mysql server,每个都有不同的数据目录。我认为这不会有帮助,但您可能会查看 NDB 存储引擎,它可以处理 tablespaces,这可能会让您将数据存储在多个位置。

【讨论】:

  • 嗨 Keith,它不是 mysql 限制,而是操作系统级别的文件夹限制限制。我不能将我的那些数据库保存在 NDB 中。
  • 您使用的是 FAT32 文件系统吗?那是古老的技术。任何现代文件系统都可以在一个目录中拥有比这更多的项目(Windows 的 NTFS,Linux 和 Mac 的任何东西)。
  • 那你用的是什么操作系统和文件系统?
  • 请同时发布 mysql 在创建数据库失败时给您的错误。
  • 正如我之前所说,mysql 并没有因为创建超过 32000 个数据库的问题给我一个错误。但是现在 mysql 给了我一个错误,即:- 无法创建数据库(错误: 31)。请帮帮我。
【解决方案2】:

您可以创建多个分区并使用 LVM(在 Linux 中)将它们连接起来,然后将分区挂载到 DATADIR 路径。您还可以使用软链接将数据库移动到其他文件夹/分区。

不幸的是 MySQL 只支持一个 DATADIR 但在我看来 InnoDB 表可以作为分隔路径的地方。你能检查一下吗?

【讨论】:

    猜你喜欢
    • 2011-07-27
    • 2012-02-23
    • 2019-07-10
    • 2013-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-10
    • 2022-11-14
    相关资源
    最近更新 更多