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

Jawaban:


27

man mysqldump

-f, --force         Continue even if we get an sql-error.

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?


2
Karena perusahaan saya memaksa saya untuk melewati departemen lain :(
Chad Johnson
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.