没有使用 SQL 的经验 - 访问冲突
Inexperienced with SQL - Access Violation
我在一家从事网络托管的 IT 公司工作,我个人对 SQL 非常缺乏经验*。
*见鬼
我的一个客户正在尝试将 Epos 系统与他的 magento 网站集成,在 Epos 集成期间,他们遇到了以下错误。
exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation:
他通过以下查询向我发送了他声称应该纠正这种情况的输入:
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 query:
GRANT CREATE TEMPORARY TABLES ON * TO 'cl54-cslstores'@'%';
MySQL said: Documentation
1044 - Access denied for user 'cl54-cslstores'@'%' to database 'cl54-cslstores'
我以管理员身份使用数据库,所以我不明白为什么会出现 permissions/access 问题。
再次......我在使用 SQL 时完全没有任何线索,所以这可能是一个非常简单的修复,但我已经在 t'interwebs 上环顾四周但找不到我能理解的解决方案,更不用说遵循了。
任何人都可以提供有关如何解决此问题的任何帮助吗?
提前致谢。
首先您需要检查您登录的用户:
select user();
select_user 将显示您尝试登录的身份。然后 运行 这个查询:
select current_user();
这会告诉你你实际连接的是什么。您需要确认您是以 root 用户身份登录的 - 所以 mysql 中的 root@localhost - 如果不是,你应该注销并以 root 用户身份登录。
现在使用以下查询检查您的用户的授予权限:
SELECT host, user, password, Grant_priv, Super_priv FROM mysql.user;
这将生成一个用户列表,最后将授予权限设置为 Y 或 N。如果设置为 N,则可以按如下方式更改权限:
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
希望对您有所帮助!
编辑
您需要重置您的根用户帐户,然后按照上面的说明进行操作,有关如何在 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
我在一家从事网络托管的 IT 公司工作,我个人对 SQL 非常缺乏经验*。
*见鬼
我的一个客户正在尝试将 Epos 系统与他的 magento 网站集成,在 Epos 集成期间,他们遇到了以下错误。
exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation:
他通过以下查询向我发送了他声称应该纠正这种情况的输入:
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 query:
GRANT CREATE TEMPORARY TABLES ON * TO 'cl54-cslstores'@'%';
MySQL said: Documentation
1044 - Access denied for user 'cl54-cslstores'@'%' to database 'cl54-cslstores'
我以管理员身份使用数据库,所以我不明白为什么会出现 permissions/access 问题。
再次......我在使用 SQL 时完全没有任何线索,所以这可能是一个非常简单的修复,但我已经在 t'interwebs 上环顾四周但找不到我能理解的解决方案,更不用说遵循了。
任何人都可以提供有关如何解决此问题的任何帮助吗?
提前致谢。
首先您需要检查您登录的用户:
select user();
select_user 将显示您尝试登录的身份。然后 运行 这个查询:
select current_user();
这会告诉你你实际连接的是什么。您需要确认您是以 root 用户身份登录的 - 所以 mysql 中的 root@localhost - 如果不是,你应该注销并以 root 用户身份登录。
现在使用以下查询检查您的用户的授予权限:
SELECT host, user, password, Grant_priv, Super_priv FROM mysql.user;
这将生成一个用户列表,最后将授予权限设置为 Y 或 N。如果设置为 N,则可以按如下方式更改权限:
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
希望对您有所帮助!
编辑
您需要重置您的根用户帐户,然后按照上面的说明进行操作,有关如何在 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