Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk mengalih keluar Klausa DEFINER daripada MySQL Dumps?

Bagaimana untuk mengalih keluar Klausa DEFINER daripada MySQL Dumps?

Susan Sarandon
Susan Sarandonasal
2024-10-27 07:11:29726semak imbas

How to Remove DEFINER Clauses from MySQL Dumps?

Mengalih keluar Klausa DEFINER daripada MySQL Dumps

Lambakan MySQL selalunya termasuk klausa DEFINER dalam kenyataan CREATE VIEW dan CREATE PROCEDURE, seperti "DEFINER=root @localhost". Klausa ini boleh menjadi tidak diingini dalam senario tertentu. Artikel ini meneroka kaedah untuk mengalih keluar klausa ini daripada fail dump MySQL.

Penyelesaian:

  1. Penggantian Editor Teks:

Buka fail dump dalam editor teks dan lakukan carian global dan ganti. Cari semua kejadian "DEFINER=@" dan gantikannya dengan rentetan kosong.

  1. Perl Command:

Edit fail dump menggunakan Perl dengan arahan berikut:

perl -p -i.bak -e "s/DEFINER=\`\w.*\`@\`\d[0-3].*[0-3]\`//g" mydatabase.sql

Ini akan mengalih keluar semua klausa DEFINER daripada fail dump dan membuat sandaran dengan sambungan ".bak".

  1. Sed Piping:

Paipkan output mysqldump melalui sed untuk mengalih keluar klausa DEFINER:

mysqldump ... | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' > triggers_backup.sql

Arahan ini akan mencipta fail dump baharu bernama "triggers_backup.sql" dengan klausa DEFINER dialih keluar.

Atas ialah kandungan terperinci Bagaimana untuk mengalih keluar Klausa DEFINER daripada MySQL Dumps?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn