MySQL ダンプからの DEFINER 句の削除
MySQL ダンプには、データベース オブジェクトを作成したユーザーとホストを指定する DEFINER 句が含まれています。ただし、セキュリティまたはその他の理由でこれらの句を削除することもできます。
テキスト編集を使用した DEFINER 句の削除
1 つの方法は、ダンプ ファイルを手動で編集することです。テキストエディタ。 DEFINER 句 (例: "DEFINER=root@localhost") を含む行を検索し、空の文字列 ("") または任意の値に置き換えます。
Perl を使用して DEFINER 句を削除する
Perl を使用してダンプから句を削除できます。次のコマンドを使用して、「mydatabase.sql」をダンプ ファイルの名前に置き換えます。
perl -p -i.bak -e "s/DEFINER=\`\w.*\`@\`\d[0-3].*[0-3]\`//g" mydatabase.sql
DEFINER 句を削除するための出力のパイプ処理
句を削除することもできます。 sed:
mysqldump ... | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' > triggers_backup.sql
のようなコマンドを介してダンプ出力をパイプすることによって、このコマンドは DEFINER 句をアスタリスク (*) に置き換えます。必要に応じて置換パターンをさらにカスタマイズできます。
注:
以上が以下に、提供された記事に基づいた、質問と回答の形式でいくつかのタイトルを示します。 オプション 1 (直接的かつ集中的): * MySQL ダンプから DEFINER 句を削除するには? オプション 2 (より具体的な):の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。