我一直在寻找一个解决scheme,但似乎没有任何工作。 我在这个服务器上有一个Drupal 6网站。
服务器:Ubuntu 12.04 Apache / 2.2.22(Ubuntu)5.3.10-1ubuntu3.8 MySQL 5.5.32 Drupal 6
这是一个链接到我的Apache2和MySQL错误文件和我的MySQLconfiguration文件。 请看一看。 https://drive.google.com/folderview?id=0By8qja37RfvzWUt1a0lGSzZqR3M&usp=sharing这些文件是巨大的,这就是为什么我链接到他们,而不是粘贴在这里。 如果我需要我可以粘贴在这里。 请让我知道 谢谢。
我做了很多search。 我主要尝试Google自己的错误,但似乎无法find正确的解决scheme。 我认为我已经把它缩小到一个与innodb的问题,但就是这样。 我检查错误日志和phpMyAdmin中的表,他们说没问题,我修理它们,仍然崩溃。
当我的网站崩溃,我必须重新启动Apache,然后重新启动MySQL,然后网站恢复。 它一天已经崩溃了2-6次。
任何帮助将不胜感激。 谢谢。
我有理由相信你的MySQL安装没有任何问题,这就是为什么修复表没有发现问题。 那些是真正问题的文物:
你只是没有足够的内存在你的机器上做你想做的一切事情。
从您的configuration:
key_buffer = 384M
在这个和128M的innodb_buffer_pool_size的默认值之间,这个512M必须一直可用,如果在启动或重新启动MySQL 的时候不能分配,那么它不会启动。
131210 13:06:25 InnoDB: Initializing buffer pool, size = 128.0M InnoDB: mmap(137363456 bytes) failed; errno 12 131210 13:06:25 InnoDB: Completed initialization of buffer pool 131210 13:06:25 InnoDB: Fatal error: cannot allocate memory for the buffer pool 131210 13:06:25 [ERROR] Plugin 'InnoDB' init function returned error.
这不是MySQL的崩溃 – 这是MySQL无法启动或重新启动 – 因为没有128MB的可用内存可供分配。
错误12是“内存不足” – 系统内存。
错误日志中的其他消息基本上都是副作用。
我怀疑你的日志里也会看到:
YYMMDD HH:MM:SS mysqld_safe Number of processes running now: 0
如果这个错误信息没有立即发生崩溃转储(“MySQL抓到的信号xx”后跟一个堆栈跟踪和大量的debugging信息),那么它不可能是MySQL崩溃 – 这是MySQL被内核杀死尝试由于与可用内存有关的危机情况而使整个系统不致崩溃。 Apache的分叉模式是臭名昭着的 – 因为你的网站变得繁忙,Apache产生更多的孩子,每个孩子都有记忆的胃口。
你可能会在你的系统日志中find这个证据。
Xxx xx xx:xx:xx [machine name] kernel: Out of memory: Killed process xxxx, UID xx, (mysqld).
这些选项可以增加更多的内存,或者通过configuration减lessMySQL的内存占用,或者减lessApache可以产生的子项数量,或者消除系统中的其他进程,或者将数据库和Web服务器分离到不同的机器上,或者添加更多的swap- – 但是一个交换的MySQL机器不会达到最佳状态。
对于类似的情况,另请参阅: