我为一家负责网络托管的IT公司工作,我个人 - 对SQL很缺乏经验*。
*看到糟糕的
我的一位客户正在尝试将Epos系统与他的magento网站集成,并且在Epos'他们遇到了以下错误。
例外' PDOException'消息' SQLSTATE [42000]:语法错误或访问冲突:
他通过以下询问向我发送了他声称应该纠正这种情况的意见:
GRANT CREATE TEMPORARY TABLES on * to 'cl54-cslstores'@'%';
GRANT CREATE VIEW on * to 'cl54-cslstores'@'%';
GRANT CREATE ROUTINE on * to 'cl54-cslstores'@'%';
GRANT CREATE TRIGGER on * to 'cl54-cslstores'@'%';
显然,这四个片段应该解决他的问题,但是,当我运行命令时,我收到以下错误:
SQL查询:
在* to' cl54-cslstores' @'%';
上创建临时表格MySQL说:文档
1044 - 拒绝用户' cl54-cslstores' @'%'到数据库' cl54-cslstores'
我以管理员身份使用数据库,因此我不了解权限/访问权限问题。
再次......我在使用SQL时完全没有任何线索,所以这可能是一个非常简单的解决方案,但我已经浏览了t' interwebs并且找不到我能理解的解决方案,更不用说了。
是否有任何人可以提供有关如何解决此问题的帮助?
提前谢谢。
答案 0 :(得分:0)
首先,您需要检查用户是否已登录:
select user();
select_user将显示您尝试登录的内容。然后运行此查询:
select current_user();
这将显示您实际连接的内容。您需要确认您是以root用户身份登录的 - 所以在mysql中root @ localhost - 如果不是,您应该注销并以root用户身份登录。
现在使用以下查询检查用户的授予权限:
SELECT host, user, password, Grant_priv, Super_priv FROM mysql.user;
这将生成一个用户列表,最后它将Grant priv设置为Y或N.如果设置为N,则可以按如下方式更改privelleges:
UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';
然后,您需要刷新以前的权限并运行以下sql命令。
FLUSH PRIVILEGES;
GRANT ALL ON *.* TO 'root'@'localhost';
此链接可能对您有用:https://dba.stackexchange.com/questions/36008/error-1044-access-denied-to-user
希望有所帮助!
修改
您需要重置root用户帐户,然后按照上面的说明操作,有关如何在PhpMyAadmin中执行此操作的信息,请访问:
http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html
或
https://askubuntu.com/questions/118772/how-to-change-root-password-for-mysql-and-phpmyadmin