我刚刚设置了我的第一个magento网站,在创建产品时,我收到以下错误:
SQLSTATE[42000]: Syntax error or access violation: 1044 Access denied for user 'USERNAME'@'%' to database 'DBNAME',
query was:
CREATE TEMPORARY TABLE `catalogrule_product_price_tmp` ( `grouped_id` varchar(80) NULL COMMENT 'Grouped ID' ,
`product_id` int UNSIGNED NULL COMMENT 'Product ID' ,
`customer_group_id` smallint UNSIGNED NULL COMMENT 'Customer Group ID' ,
`from_date` date NULL COMMENT 'From Date' , `to_date` date NULL COMMENT 'To Date' ,
`action_amount` decimal(12,4) NULL COMMENT 'Action Amount' ,
`action_operator` varchar(10) NULL COMMENT 'Action Operator' ,
`action_stop` smallint NULL COMMENT 'Action Stop' ,
`sort_order` int UNSIGNED NULL COMMENT 'Sort Order' ,
`price` decimal(12,4) NULL COMMENT 'Product Price' ,
`rule_product_id` int UNSIGNED NULL COMMENT 'Rule Product ID' ,
`from_time` int UNSIGNED NULL default '0' COMMENT 'From Time' ,
`to_time` int UNSIGNED NULL default '0' COMMENT 'To Time' ,
INDEX `IDX_CATALOGRULE_PRODUCT_PRICE_TMP_GROUPED_ID` (`grouped_id`) ) COMMENT='CatalogRule Price Temporary Table' ENGINE=INNODB charset=utf8 COLLATE=utf8_general_ci
我不知道为什么会这样。类似的帖子似乎表明它可能是一个特权问题,但没有解释如何实现此修复。
grant_create_temporary_tables,grant_create_view,grant_create_routine,grant_trigger
我没有足够的声誉来评论这个问题,并试图得到一个更详细的答案,所以我创建了一个新的,我希望没关系。
有趣的是,在我设置的另一个网站上没有发生这种情况完全相同,只不过我在那个网站上导入了样本数据。
答案 0 :(得分:2)
假设您引用的SO帖子是正确的,请以root用户或Grant Options
的其他用户身份登录到您的mysql服务器。然后为你的magento用户运行:
Grant CREATE TEMPORARY TABLES, CREATE VIEW, CREATE ROUTINE, Trigger on DBNAME.* to 'USERNAME'@'%';
Flush privileges;
这将允许您的magento用户创建临时表等...