致命错误:允许的内存大小为 [重复]

Posted

技术标签:

【中文标题】致命错误:允许的内存大小为 [重复]【英文标题】:Fatal error: Allowed memory size of [duplicate] 【发布时间】:2017-08-29 19:37:18 【问题描述】:

我根本不是程序员,但我需要让一个旧的 Joomla 站点启动并运行足够长的时间,以便我从站点中抓取内容(文章和导航标题)并启动一个新的 WordPress 站点。目前,该网站 (www.muellerfamilylaw.com) 显示以下错误:

jtablesession::存储失败 DB 函数失败,错误号为 145 表 './tempmu5_muellerfamilylaw/jos_session' 被标记为崩溃,应修复 SQL=INSERT INTO jos_session (session_id,time,username,gid,guest,client_id) VALUES ( '7f0d46db0c41fddae0302015fc529d2e','1491314393','','0','1','0')

如果有人能帮我修复这个问题,让旧网站运行足够长的时间让我收集所有页面内容,我将不胜感激。

【问题讨论】:

我会备份表(如果它允许,或者只是复制服务器上的原始文件)并使用相同的结构重新创建它,然后重试。不能保证,但可能会带你到某个地方。 【参考方案1】:

转到phpMyAdmin 并发出以下查询:

REPAIR TABLE jos_session

如果它不起作用,那么只需删除表并重新创建它。

CREATE TABLE IF NOT EXISTS `jos_session` (
  `session_id` varchar(191) NOT NULL DEFAULT '',
  `client_id` tinyint(3) unsigned NOT NULL DEFAULT 0,
  `guest` tinyint(4) unsigned DEFAULT 1,
  `time` varchar(14) DEFAULT '',
  `data` mediumtext,
  `userid` int(11) DEFAULT 0,
  `username` varchar(150) DEFAULT '',
  PRIMARY KEY (`session_id`),
  KEY `userid` (`userid`),
  KEY `time` (`time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci;

顺便说一句,发生这种情况的原因是因为您可能使用的是 MyISAM 而不是 InnoDB - 切换到 InnoDB 是一个好主意,因为 InnoDB 表不太可能崩溃。我们已经发布了关于这个问题here。

【讨论】:

【参考方案2】:

对于您的表崩溃问题,您应该考虑在 mysql 或 mysqlcheck 中使用 repair table 命令修复表。

对于内存耗尽的问题,由于这是暂时的事情,使用php的ini_set函数如下就足够了。

ini_set('memory_limit', '2G'); // adjust the 2G as required.

你需要把它放在第 117 行之前你已经筋疲力尽的地方。

【讨论】:

以上是关于致命错误:允许的内存大小为 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

致命错误:允许的内存大小为 268435456 字节已用尽(尝试分配 8192 字节)[重复]

致命错误:允许的 33554432 字节的内存大小已用尽 [重复]

PHP致命错误:允许的内存大小为134217728字节已用尽

致命错误:允许的内存大小为 268435456 字节已用尽(尝试分配 71 字节)

致命错误:允许的内存大小为 1610612736 字节用尽 laravel 护照

致命错误:PHPExcel 中已用尽的允许内存大小为 134217728 字节