Prestashop 1.6水平菜单和类别菜单问题

时间:2015-12-22 06:22:29

标签: exception

我尝试将默认货币更改为dollarwebsite后遇到此错误是aso-iyi.com 每当我点击其中一个水平菜单图标(例如非洲版画)时,它将在下面显示以下代码行 我使用的主题是默认引导程序

[PrestaShopDatabaseException]

Access denied for user 'cl50-x-prest-xxx'@'%' to database 'cl50-x-prest-xxx'

CREATE TEMPORARY TABLE ps_cat_restriction ENGINE=MEMORY

SELECT DISTINCT cp.id_product, p.id_manufacturer, product_shop.condition, p.weight FROM ps_category_product cp
                                                    INNER JOIN ps_category c ON (c.id_category = cp.id_category AND
                                                    c.nleft >= 10
                                                    AND c.nright <= 11
                                                    AND c.active = 1)
                                                    INNER JOIN ps_product_shop product_shop ON (product_shop.id_product = cp.id_product
                                                    AND product_shop.id_shop = 1)
                                                    INNER JOIN ps_product p ON (p.id_product=cp.id_product)
                                                    WHERE product_shop.`active` = 1 AND product_shop.`visibility` IN ("both", "catalog")

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

查看我的网站以获得更正确的解释 www-aso-iyi.com点击横向菜单上的非洲版画

非常欣赏

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,发现原因是你的mysql用户权限不高。 最初,当我在托管面板中创建我的数据库时,我被允许为具有FULL权限的数据库创建用户。当然我用过这个选项。但是在花了几个小时解决这个问题后 - 我试图将现有的prestashop数据库和prestashop目录和文件移动到localhost并检查类别列表是否有效。这是一个惊喜 - 但这个错误消失了。然后我将本地数据库的转储导出回我的主机,并再次出现相同的错误。

之后我在托管面板中探索了添加/编辑mysql用户的菜单,发现我的用户应该拥有DB的所有权限,并且没有所有权限。

缺少以下特权:

  • 创建临时表[!!!如果查看错误,可以看到SQL查询尝试在内存中创建临时表(ENGINE = MEMORY),但实际上我们没有此权限并且拒绝访问错误]
  • 创建例程
  • alter routine
  • 创建视图 等

添加所有这些权限后,主题错误消失了,我可以查看/浏览我的类别中的产品。

如果您有权访问phpmyadmin,则可以通过运行以下SQL查询来检查您的权限:

SHOW GRANTS;

如果您具有所有必要的权限,则输出应为:

Grants for yourusername_pshop@%
GRANT USAGE ON *.* TO 'yourusername_pshop'@'%' IDENTIFIED BY PASSWORD 'YOURPASSWORDHASH'
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON `yourusername_pshop`.* TO 'yourusername_pshop'@'%'

希望它会有所帮助

P.S。如果你不知道如何检查和更改你的mysql用户权限 - 最好联系你的托管服务提供商。

答案 1 :(得分:0)

我如何解决水平菜单没有显示,每当我点击它就会显示数据库异常错误...访问被拒绝。 我首先在/public_html/config/settings.inc.php上确认我的用户数据库名称,数据库名称和密码,以及我在控制面板托管帐户中的名称。当它是相同的 问题仍然存在,我在模块部分禁用我的水平菜单模块然后我通过我的/public_html/config/defines.inc.php第29行和第36行我将它们设置为false然后我去后台办公室。点击首选然后点击seo&amp; url检查是否有任何冲突的网址然后我看到第三方支付模块页面和订单模块具有相同的网址&#34;订单确认&#34;然后我更改了第三方支付网址,因为是第三方模块,我安装新的然后我启用我的水平菜单模块然后一切开始工作完美