错误的 SQL 查询磁盘已满 (/tmp/#sql_58f_0);等待有人释放一些空间

问题描述 投票:0回答:1

我有 Presta,我喜欢它,但是.. 现在我收到这个奇怪的错误:

错误的 SQL 查询磁盘已满 (/tmp/#sql_58f_0);等待某人释放 一些空间...

我用谷歌搜索了很多,但没有找到任何解决方案。

在我的产品字段添加EAN代码后,我的商店显示:

目前没有特色产品。

在此之前,一切看起来都很好。 我恢复了一份旧备份(2 个月前),并注意到它已经出现了相同的 SQL 错误,并且在我添加一个 EAN 代码后,我看到了相同的 没有特色产品

不确定恢复是否使商店恢复到 100 年前的状态,但使用 ean 代码,我有一个完全无法工作的商店。 即使删除它们也不能解决我的问题。

我打开调试并收到以下结果:

{PrestaShopDatabaseException]

Disk full (/tmp/#sql_58f_0); waiting for someone to free some space...

SELECT
a.`id_category`, `name`, `description`, sa.`position` AS `position`, `active`
, sa.position position
FROM `ps_category` a 
LEFT JOIN `ps_category_lang` b ON (b.`id_category` = a.`id_category` AND b.`id_lang` = 1 AND b.`id_shop` = 1)
LEFT JOIN `ps_category_shop` sa ON (a.`id_category` = sa.`id_category` AND sa.id_shop = 1)  
WHERE 1   AND `id_parent` = 2 

ORDER BY sa.`position` ASC  LIMIT 0, 50

在文件classes/db/Db.php第791行:

786.         if ($webservice_call && $errno) {
787.             $dbg = debug_backtrace();
788.             WebserviceRequest::getInstance()->setError(500, '[SQL Error] '.$this->getMsgError().'. From '.(isset($dbg[3]['class']) ? $dbg[3]['class'] : '').'->'.$dbg[3]['function'].'() Query was : '.$sql, 97);
789.         } elseif (_PS_DEBUG_SQL_ && $errno && !defined('PS_INSTALLATION_IN_PROGRESS')) {
790.             if ($sql) {

**791.                 throw new PrestaShopDatabaseException($this->getMsgError().'<br /><br /><pre>'.$sql.'</pre>');**

792.             }
793. 
794.             throw new PrestaShopDatabaseException($this->getMsgError());
795.         }
796.     }

DbCore->displayError - [line 425 - classes/db/Db.php] - [1 Arguments]

420.                 $this->result = $this->_query($sql);
421.             }
422.         }
423. 
424.         if (_PS_DEBUG_SQL_) {

**425.             $this->displayError($sql);**

426.         }
427. 
428.         return $this->result;
429.     }
430. 

DbCore->query - [line 643 - classes/db/Db.php] - [1 Arguments]

Argument [0]
SELECT
a.`id_category`, `name`, `description`, sa.`position` AS `position`, `active`
, sa.position position
FROM `ps_category` a 
LEFT JOIN `ps_category_lang` b ON (b.`id_category` = a.`id_category` AND b.`id_lang` = 1 AND b.`id_shop` = 1)
LEFT JOIN `ps_category_shop` sa ON (a.`id_category` = sa.`id_category` AND sa.id_shop = 1)  
WHERE 1   AND `id_parent` = 2 

ORDER BY sa.`position` ASC  LIMIT 0, 50

DbCore->executeS - [line 3212 - classes/controller/AdminController.php] - [3 Arguments]

3207. '.($this->_tmpTableFilter ? ' * FROM (SELECT ' : '').$this->_listsql.$sql_from.$sql_join.' WHERE 1 '.$sql_where.
3208.                                 $sql_order_by.$sql_limit;
3209.                 $list_count = 'SELECT COUNT(*) AS `'._DB_PREFIX_.$this->table.'` '.$sql_from.$sql_join.' WHERE 1 '.$sql_where;
3210.             }
3211. 

**3212.             $this->_list = Db::getInstance()->executeS($this->_listsql, true, false);**

3213. 
3214.             if ($this->_list === false) {
3215.                 $this->_list_error = Db::getInstance()->getMsgError();
3216.                 break;
3217.             }

AdminControllerCore->getList - [line 253 - controllers/admin/AdminCategoriesController.php] - [6 Arguments]

248.         return parent::renderList();
249.     }
250. 
251.     public function getList($id_lang, $order_by = null, $order_way = null, $start = 0, $limit = null, $id_lang_shop = false)
252.     {

**253.         parent::getList($id_lang, $order_by, $order_way, $start, $limit, Context::getContext()->shop->id);**

254.         // Check each row to see if there are combinations and get the correct action in consequence
255. 
256.         $nb_items = count($this->_list);
257.         for ($i = 0; $i < $nb_items; $i++) {
258.             $item = &$this->_list[$i];

AdminCategoriesControllerCore->getList - [line 2333 - classes/controller/AdminController.php] - [1 Arguments]

Argument [0]
1

AdminControllerCore->renderList - [line 248 - controllers/admin/AdminCategoriesController.php]

243.             $this->tpl_list_vars['delete_category'] = true;
244.             $this->tpl_list_vars['REQUEST_URI'] = $_SERVER['REQUEST_URI'];
245.             $this->tpl_list_vars['POST'] = $_POST;
246.         }
247. 

**248.         return parent::renderList();**

249.     }
250. 
251.     public function getList($id_lang, $order_by = null, $order_way = null, $start = 0, $limit = null, $id_lang_shop = false)
252.     {
253.         parent::getList($id_lang, $order_by, $order_way, $start, $limit, Context::getContext()->shop->id);

AdminCategoriesControllerCore->renderList - [line 2034 - classes/controller/AdminController.php]

2029.         } elseif ($this->display == 'details') {
2030.             $this->content .= $this->renderDetails();
2031.         } elseif (!$this->ajax) {
2032.             $this->content .= $this->renderModulesList();
2033.             $this->content .= $this->renderKpis();

**2034.             $this->content .= $this->renderList();**

2035.             $this->content .= $this->renderOptions();
2036. 
2037.             // if we have to display the required fields form
2038.             if ($this->required_database) {
2039.                 $this->content .= $this->displayRequiredFields();

AdminControllerCore->initContent - [line 199 - controllers/admin/AdminCategoriesController.php]

194.                 'url_delete' => htmlentities($_SERVER['REQUEST_URI']),
195.                 'boxes' => $this->boxes,
196.             ));
197.         }
198. 

**199.         parent::initContent();**

200.     }
201. 
202.     public function setMedia()
203.     {
204.         parent::setMedia();

AdminCategoriesControllerCore->initContent - [line 189 - classes/controller/Controller.php]

184.             if (!$this->content_only && ($this->display_header || (isset($this->className) && $this->className))) {
185.                 $this->initHeader();
186.             }
187. 
188.             if ($this->viewAccess()) {

**189.                 $this->initContent();**

190.             } else {
191.                 $this->errors[] = Tools::displayError('Access denied.');
192.             }
193. 
194.             if (!$this->content_only && ($this->display_footer || (isset($this->className) && $this->className))) {

ControllerCore->run - [line 367 - classes/Dispatcher.php]

362.             if (isset($params_hook_action_dispatcher)) {
363.                 Hook::exec('actionDispatcher', $params_hook_action_dispatcher);
364.             }
365. 
366.             // Running controller

**367.             $controller->run();**

368.         } catch (PrestaShopException $e) {
369.             $e->displayMessage();
370.         }
371.     }
372. 

DispatcherCore->dispatch - [line 58 - admin/index.php]

53. if (!isset($_REQUEST['controller']) && isset($_REQUEST['tab'])) {
54.     $_REQUEST['controller'] = strtolower($_REQUEST['tab']);
55. }
56. 
57. // Prepare and trigger admin dispatcher


**58. Dispatcher::getInstance()->dispatch();**

谷歌没有太大帮助。

您以前见过这个吗?我(或其他人)该如何解决这个问题?

感谢您的反馈!

附注域名是 Giantjeans.com

sql-server prestashop-1.6
1个回答
0
投票

您的网络托管中的磁盘空间(在本例中为数据库大小)似乎较小,或者 SQL 服务器同时对数据库发出太多请求。

因此Prestashop无法写入数据。为了解决问题,您需要检查服务器错误以了解确切原因。

建议您升级服务器并获得更多可用空间。

© www.soinside.com 2019 - 2024. All rights reserved.