2

Drupal6/CiviCRM4 Civi DB から mysqldump を実行し、Drupal7/Civi4 dev インストールにインポートしようとしていますが、369 行目で「エラー 1227 (42000): アクセスが拒否されました。これには SUPER 権限が必要です。手術"

私が知る限り、サイトの cpanel で示されているように、ユーザーには正しい権限があり、インポート コマンドではすべて正しく表示されます。他のインストールで同様の手順を実行する前に、このエラーに遭遇したことはありません。助けてください?

4

2 に答える 2

1

それはいくつかのことの1つである可能性があります。

まず、MySQL のバージョンが 5.1.6 より前の場合は、何があっても SUPER パーミッションが必要です: http://wiki.civicrm.org/confluence/display/CRMDOC/CiviCRM+MySQL+Permission+Requirements

ただし、問題なく実行されており、ダンプ ファイルをインポートしようとしているだけなので、おそらくダンプ ファイルには、定義者が古いサイトのデータベース ユーザーとして設定されている関数が含まれていると思います (たとえば、"foo@localhost 」)。SUPER 権限がなければ、定義者を自分以外の人物として設定することはできません。新しいサイトに別のユーザー (おそらく "bar@localhost") がいる場合、"foo@localhost" で定義された関数を設定しようとしている "bar@localost" として行動しています。

ダンプには、おそらく次のようなものが表示されます

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

次の 2 つのいずれかを行うことができます。

  • 両方のデータベースで同じデータベース ユーザー アカウントを使用する、または
  • ダンプ ファイルを編集して、発生するすべての場所で古いユーザー名を新しいユーザー名に置き換えます。

また、「foo@localhost」と「foo@%」は、名前とパスワードが同じであっても、別のユーザーであることにも注意してください。

于 2014-01-08T23:03:08.320 に答える
1

Drupal/CiviCrm データベースはトリガーを使用します。データベースをインポートするときにトリガーを再作成するには、SUPER 権限が必要です。標準ユーザーの権限を Civi の実行中に必要な権限に制限している場合は、インポート専用の新しい MySQL ユーザーを作成し、そのユーザーにデータベースに対するすべての権限を付与できます。インポートが完了したら、昇格された権限を持つユーザーを削除します。

于 2014-02-13T15:21:19.073 に答える