web-dev-qa-db-ja.com

Drush sql-sync:アクセスが拒否されました。この操作にはSUPER権限が必要です

Drushを使用してライブデータベースを開発データベースに移動しようとしています。私がやっている

drush sql-sync @live @devel --sanitize

しかし、私はエラーを受け取ります:

「1478250行目のエラー1227(42000):アクセスが拒否されました。この操作にはSUPER権限が必要です」

Uc_viewsモジュールからのdbのビューが原因であると思いますが、これを回避する方法はありますか?

私もやってみました

drush sql-sync --skip-tables-key uc_views @live @devel --sanitize

ここで、uc_viewsは、uc_viewsからのdbビューの配列を使用してdrushrc.phpで宣言されているオプションですが、役に立ちません。ここに私のdrushrc.phpがあります

$options['skip-tables']['uc_views'] = array('uc_order_products_pair_vw', 'uc_order_products_qty_vw', 'uc_order_products_user_vw');

可能であれば、データベースビューを除外するよりも、uc_viewsからデータベースビューをコピーすることを実際に好みます。

3
Craig Bertrand

同期の片側または両側のsettings.phpで定義されたユーザーには、データベースに対する [〜#〜] super [〜#〜] 特権がありません。

Mysql rootユーザーとしてログインし、

GRANT SUPER ON [db_name] TO '[username]'@'localhost' IDENTIFIED BY '[password]';

セキュリティを意識している場合は(当然のことですが)、 以下 を考慮に入れる価値があります。

管理者以外のユーザーにPROCESSまたはSUPER特権を付与しないでください。 mysqladmin processlistとSHOW PROCESSLISTの出力は、現在実行されているステートメントのテキストを表示するため、サーバープロセスリストの表示を許可されているユーザーは、UPDATE user SET password = PASSWORD( 'などの他のユーザーが発行したステートメントを表示できる可能性がありますnot_secure ')。

5
Letharion

Aegirで同じ問題が発生しました。問題はエクスポートではありませんが、エクスポートには、ビューを最初に作成したユーザーを含むDEFINERステートメントが含まれています。 sedを使用してこれらの行を削除することで解決されます。参照 http://drupal.org/node/881496#comment-4516064

より永続的な解決策として、drushの問題を提出するか、または http://drupal.org/node/518184 を確認する必要があります。

4
Attiks