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

时间:2009-11-16 06:19:29

标签: mysql

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

我之前提出的类似问题: Mysql create database with new database location

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

是否有可能将数据库存储在不同的位置。

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

感谢,

玛纳斯

4 个答案:

答案 0 :(得分:6)

MySQL手册指出此处的数据库数量没有限制:maximum number of databases in MySQL

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

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

答案 1 :(得分:4)

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

编辑:正如ysth所说,不同端口上的多个mysqld实例会构成一种解决方法。大多数Linux发行版都带有mysqld_multi预打包。这样可以在一台计算机上轻松处理多个数据库服务器。

Edit2:根据维基百科(和我的记忆)“一个目录中的子目录的最大数量固定为32000”(请参阅​​此处:Wikipedia ext3 entry),以便您可能是运气不好。再说一遍,我认为如果你不能减少数据库的数量 - 或者选择没有这种限制的其他文件系统(但可能有其他数据库),mysqld_multi是你最好的选择

有关mysqld_multi

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

答案 2 :(得分:1)

我想不出为什么你不能让多个mysqld服务器在不同的套接字/端口上监听并使用不同的数据目录。但重新思考导致你想要数千个数据库的任何东西会更好。

答案 3 :(得分:0)

也许他们正在使用数据库类型的多租户。这将为每个租户创建一个新的数据库