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.