Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL以一个“停止”;致命错误“;需要重新启动_Php_Mysql_Wordpress - Fatal编程技术网

Php MySQL以一个“停止”;致命错误“;需要重新启动

Php MySQL以一个“停止”;致命错误“;需要重新启动,php,mysql,wordpress,Php,Mysql,Wordpress,我正在Digital Ocean实例上托管一个WordPress站点,该实例是一个非托管云实例。我以前遇到过一个问题,当我访问我的站点时,它说“数据库连接未建立”。所以为了让它工作,我需要重新启动MySQL服务 现在我又犯了同样的错误,这次的频率也很高。所以我去了错误日志,我想这一部分,我在这里粘贴指向问题: 141123 3:15:39 InnoDB: The InnoDB memory heap is disabled 141123 3:15:39 InnoDB: Mutexes

我正在Digital Ocean实例上托管一个WordPress站点,该实例是一个非托管云实例。我以前遇到过一个问题,当我访问我的站点时,它说“数据库连接未建立”。所以为了让它工作,我需要重新启动MySQL服务

现在我又犯了同样的错误,这次的频率也很高。所以我去了错误日志,我想这一部分,我在这里粘贴指向问题:

    141123  3:15:39 InnoDB: The InnoDB memory heap is disabled
141123  3:15:39 InnoDB: Mutexes and rw_locks use GCC atomic builtins
141123  3:15:39 InnoDB: Compressed tables use zlib 1.2.3.4
141123  3:15:39 InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(135987200 bytes) failed; errno 12
141123  3:15:39 InnoDB: Completed initialization of buffer pool
141123  3:15:39 InnoDB: Fatal error: cannot allocate memory for the buffer pool
141123  3:15:39 [ERROR] Plugin 'InnoDB' init function returned error.
141123  3:15:39 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
141123  3:15:39 [ERROR] Unknown/unsupported storage engine: InnoDB
141123  3:15:39 [ERROR] Aborting
所以我认为问题是因为它不能为缓冲池分配内存,因为这是一个致命的错误,所以这可能是阻止MySQL的原因。但我不知道如何修复它,这是导致问题的真正原因吗?那么,这是与服务器配置相关的问题,还是我的代码中可能存在一些随意的查询

更新 在尝试修复@Sajidkhan(以下答案之一)后。Sill mysql将在一段时间后关闭,但这次的日志有点不同。下面是我现在看到的

141206 14:38:59 [Note] Plugin 'FEDERATED' is disabled.
141206 14:38:59 InnoDB: The InnoDB memory heap is disabled
141206 14:38:59 InnoDB: Mutexes and rw_locks use GCC atomic builtins
141206 14:38:59 InnoDB: Compressed tables use zlib 1.2.3.4
141206 14:38:59 InnoDB: Initializing buffer pool, size = 128.0M
141206 14:38:59 InnoDB: Completed initialization of buffer pool
141206 14:38:59 InnoDB: highest supported file format is Barracuda.
InnoDB: The log sequence number in ibdata files does not match
InnoDB: the log sequence number in the ib_logfiles!
141206 14:38:59  InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer...
141206 14:38:59  InnoDB: Waiting for the background threads to start
141206 14:39:00 InnoDB: 5.5.31 started; log sequence number 512843890

如果您确实需要跳过innodb(用例:低内存占用),那么您当然不必对其进行注释。但是,如果InnoDB是默认的存储引擎,服务器将无法启动,直到您告诉它使用哪个存储引擎,例如,默认存储引擎=myisam for myisam

试试这个:

sudo -u mysql mysqld --skip-innodb --default-storage-engine=myisam

这里的关键是这一行:

141123  3:15:39 InnoDB: Fatal error: cannot allocate memory for the buffer pool

您应该尝试创建或升级到数字海洋的下一个计划

但是,如果我的数据库使用innodb作为存储引擎,那么更改默认存储引擎会影响它吗?我的意思是,我们将只通过上述命令更改默认存储引擎,这样当它需要使用innodb时,不会再次出现相同的错误吗?我尝试了这个方法,但没有成功。db问题仍然存在,MySQL被停止。是的,交换选项很好,但这是否意味着我的一些插件正在执行一些繁重的查询,因为没有流量太大或没有太多此类内容会导致此问题。所以你认为除了创建交换文件之外,如果我研究插件查询e.t.c.也会有帮助吗@哈菲兹:找出内存泄漏的地方只是为了进行良好的练习,这并没有什么坏处。你可以试着禁用所有插件,让它们一个接一个地恢复在线,并监控你的使用情况。听起来你有点瓶颈。我不认为这是一个交换文件的替代品,我无论如何都会创建一个。我用这个例子告诉我,知道我已经有了交换文件,而现在只使用了<代码> 77/1023 /代码> MB,而内存使用是代码> 486/495 < /Cord> MB。那个么你们认为呢,为什么交换文件的使用量如此之少,而内存却消耗得如此之多?