没有经验的SQL - 访问冲突

时间:2015-03-09 14:52:09

标签: mysql magento

我为一家负责网络托管的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并且找不到我能理解的解决方案,更不用说了。

是否有任何人可以提供有关如何解决此问题的帮助?

提前谢谢。

1 个答案:

答案 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