mysql对数据库的数量有任何限制

MyS*_*DBA 5 mysql

我在"/ var/lib/mysql/data"中的mysql默认数据目录中创建mysql数据库但是它不允许我在其中创建超过31999个数据库.

我之前提出的类似问题: Mysql使用新的数据库位置创建数据库

我说mysql可以创建超过32000个数据库但是,当我在生产服务器上尝试这个东西时.它没有发生.

有没有可能,我可以在不同的位置存储数据库.

任何输入都将是一个帮助.

谢谢,

玛纳斯

hum*_*ads 6

MySQL手册指出这里的数据库数量没有限制:MySQL中的最大数据库数量

但是,由于每个数据库都需要在文件系统上创建一个目录,并且文件系统可能对一个文件夹中的目录数量有限制,因此存在有效限制.

检查文件系统文档,了解它允许的最大目录数(NTFS~40亿,ext3~32000,ext4~unlimited等)


Dan*_*ler 5

这可能是数据目录所在的文件系统的限制,因为 MySQL 尝试为每个数据库创建一个目录。如果无法在给定父目录中创建超过一定数量的子目录,MySQL 将在 CREATE DATABASE 时失败。

编辑:正如 ysth 所说,不同端口上的多个 mysqld 实例将构成一个解决方法。大多数 Linux 发行版都预装了 mysqld_multi。这允许很容易地在一台机器上处理多个数据库服务器。

Edit2:根据维基百科(和我的记忆)“一个目录中子目录的最大数量固定为 32000”(参见此处:维基百科 ext3 条目),因此您可能不走运。再说一遍,如果您无法减少数据库的数量,我认为 mysqld_multi 是您最好的选择 - 或者选择另一个没有此限制的文件系统(但可能有其他限制)

有关mysqld_multi的更多信息,请参阅 MySQL 手册

  • 如果他使用 ext3,那么是的,他的目录数被限制为 32,000 个(好吧,31998 个,因为你必须计算“.”和“..”)。 (2认同)