2

我已经从我们的 Drupal6/CiviCRM4 Civi DB 完成了一个 mysqldump,并试图将其导入 Drupal7/Civi4 开发安装,但在第 369 行不断收到“错误 1227 (42000):访问被拒绝;您需要为此提供超级权限手术”

据我所知,用户具有通过站点的 cpanel 指示的正确权限,在导入命令中所有显示都是正确的。在对其他安装进行类似程序之前,我没有遇到此错误。请帮忙?

4

2 回答 2

1

这可能是几件事之一。

首先,如果你有 5.1.6 之前的 MySQL 版本,无论如何你都需要 SUPER 权限: http ://wiki.civicrm.org/confluence/display/CRMDOC/CiviCRM+MySQL+Permission+Requirements

但是,由于它运行良好并且您只是尝试导入转储文件,我认为您的转储文件可能具有将定义器设置为旧站点的数据库用户的功能(比如说“foo@localhost ”)。在没有 SUPER 权限的情况下,您不得将定义者设置为您以外的其他人。如果新站点有不同的用户(可能是“bar@localhost”),那么您将扮演“bar@localost”的角色,试图设置由“foo@localhost”定义的函数。

在您的转储中,您可能会看到类似以下内容的内容

CREATE DEFINER=`foo`@`localhost` FUNCTION ...

您可以执行以下两项操作之一:

  • 让两个数据库使用相同的数据库用户帐户,或
  • 编辑转储文件,在出现的任何地方用新用户名替换旧用户名。

您还应该知道“foo@localhost”和“foo@%”是不同的用户,即使他们有相同的名称和密码。

于 2014-01-08T23:03:08.320 回答
1

Drupal/CiviCrm 数据库使用触发器。导入数据库时​​需要 SUPER 权限才能重新创建触发器。如果您已将标准用户的权限限制为运行 Civi 时所需的权限,您可以创建一个新的 MySQL 用户仅用于导入并授予该用户对数据库的所有权限。导入完成后,删除具有提升权限的用户。

于 2014-02-13T15:21:19.073 回答