Tôi không nghĩ có cách nào để bỏ qua việc thêm DEFINER
s đến bãi chứa. Nhưng có nhiều cách để xóa chúng sau khi tệp kết xuất được tạo.
-
Mở tệp kết xuất trong trình soạn thảo văn bản và thay thế tất cả các lần xuất hiện của
[email protected]
với một chuỗi trống "" -
Chỉnh sửa kết xuất (hoặc chuyển đầu ra) bằng cách sử dụng
perl
:perl -p -i.bak -e "s/DEFINER=\`\w.*\`@\`\d[0-3].*[0-3]\`//g" mydatabase.sql
-
Kết xuất đầu ra thông qua
sed
:mysqldump ... | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' > triggers_backup.sql