MySQL连接太多

在我的服务器上,我有7个数据库。 我们的服务器有512 MB的内存,我今天晚上升级到2GB,并有一个2.4单处理器。

我收到了关于超出连接限制的错误。 随着我的RAM增加,可以增加连接数吗? 目前它被设置为200,但是单个页面可以连接到3-4个数据库,考虑JOIN和事物。

我们为单纯的组织build立了如此多的数据库。 在所有数据库中总共有大约250-300个表格。

任何意见,将不胜感激 :)

更新

原来,我有更多的连接比我想象….

2GB内存和2.4单核,是50个用户连接准确还是应该增加呢?

[mysqld] safe-show-database skip-locking safe-show-database interactive_timeout=30 wait_timeout=30 connect_timeout=10 max_user_connections=50 max_connections=1000 key_buffer=64M join_buffer=2M record_buffer=2M sort_buffer=4M max_allowed_packet=24M query_cache_limit = 2M query_cache_size = 64M query_cache_type = 1 tmp_table_size=128M table_cache=2048 thread_cache=256 thread_concurrency=1 

你应该能够大幅增加你的连接。 但是,如果您没有正确调整每个线程的内存使用情况,就有可能导致MySQL内存不足。 MySQL内存不足可能是一个灾难性的情况,最好避免。

一个例子,当你不适当调整时会发生什么:

MySQL由于内存不足而不断重启

我提供的一些较早的调整build议:

如何在Mysql中设置my.cnf,以便连接没有限制?

InnoDB内存使用情况链接包括一个计算InnoDB内存使用情况的公式,您可以插入电子表格来计算每个线程的内存使用情况。

以下是关于MySQL服务器内存使用情况的更多信息。

最终,您的目标应该是根据您的configuration计算您的最大线程内存使用量。 一旦计算出来,您可以将您的最大连接设置为适当的值。

在1GB的机器上,我们经常将max_connections设置为750,没有问题

如果您使用PHP,那么编辑phpconfiguration文件,通常在/etc/php.ini并将持久性更改为OFF。

[MySQL]; 允许或防止持久链接。 mysql.allow_persistent =关

就这样。 重新启动Apache。