Bagaimana saya mengabaikan kesalahan dengan mysqldump?

12

Saat membuang basis data, saya mengerti

mysqldump: Couldn't execute 'show create table `some_table`': execute command denied to user 'some_user'@'%' for routine 'some_routime' (1370)

dan kemudian dumping berhenti.

Bagaimana cara membuat mysqldump berlanjut ketika mengalami masalah seperti ini? 10 menit Google tidak menawarkan bantuan.

Inilah perintah yang saya gunakan:

mysqldump -u username -h localhost --port=4406 -p --databases database_name --skip-lock-tables --force > database_name.sql
Chad Johnson
sumber

Jawaban:

27

man mysqldump

-f, --force         Continue even if we get an sql-error.
chocripple
sumber
Oke, saya pikir ini gagal, tetapi ternyata itu berhasil. Tumpukan tampaknya telah selesai, tetapi kesalahan kebetulan telah terjadi menjelang akhir, sehingga membuatnya tampak seperti kesalahan yang membuat dump gagal.
Chad Johnson
Dia telah memberikan opsi --force pada perintah yang ditunjukkannya kepada kita.
Zoredache
1
maaf tidak sadar.
chocripple
1
@Chad Johnson, seseorang mungkin berpendapat bahwa jika Anda tidak bisa mendapatkan cadangan bersih tanpa menggunakan --force, maka cadangan Anda gagal. Opsi force akan menekan kesalahan yang mungkin penting. Tolong jangan gunakan - memaksa dalam skrip cadangan Anda akan bergantung pada.
Zoredache
Ini hanya supaya saya bisa mendapatkan dump database untuk bekerja dengan lokal. Tidak ada yang penting.
Chad Johnson
1

AFIAK, kamu tidak bisa. Anda membutuhkan cukup hak istimewa untuk dijalankan mysqldump. Mengapa Anda tidak memberikan executehak istimewa kepada pengguna yang menjalankan?

kuanta
sumber
2
Karena perusahaan saya memaksa saya untuk melewati departemen lain :(
Chad Johnson