Saya harus melakukan sedikit penggalian dalam kode sumber mydumper untuk menemukan jawaban untuk pertanyaan ini. Jika Anda melihat kode sumber mydumper yang sebenarnya:
Anda akan menemukan mulai berikut ini pada baris 415 sebagai bagian dari antrian proses:
if(use_savepoints && mysql_query(thrconn, "SET SQL_LOG_BIN = 0")){
g_critical("Failed to disable binlog for the thread: %s",mysql_error(thrconn));
exit(EXIT_FAILURE);
}
Ini menunjukkan menggunakan --use-savepoints di mydumper membutuhkan kemampuan untuk mematikan log bin MySQL. Saya mencoba ini di server MariaDB saya sendiri yang masih menggunakan MySQL sebagai basis DBMS dan mendapatkan kesalahan berikut ketika menggunakan akun non administrator:
MariaDB [(tidak ada)]> SET SQL_LOG_BIN = 0; GALAT 1227 (42000): Akses ditolak; Anda memerlukan (setidaknya satu dari) hak istimewa SUPER untuk operasi ini
Dari apa yang saya baca dari kode aktual dan menguji kondisi ini di server MySQL saya sendiri, pemahaman saya adalah Anda perlu "hak istimewa SUPER" karena mydumper akan menonaktifkan logging ke binlog saat sedang berjalan. Ini adalah bagian dari kekuatan "penebangan yang mengaktifkan atau menonaktifkan" SUPER yang disebutkan dalam DOCS .
Info lebih spesifik tentang binlog ada di sini:
http://dev.mysql.com/doc/refman/5.6/id/set-sql-log-bin.html
Sejauh savepoints:
http://dev.mysql.com/doc/refman/5.6/en/savepoint.html
Setelah membaca manual dan laporan bug ini sepertinya jika savepoints dirilis mereka akan merilis kunci di atas meja yang sedang dikerjakan yang dapat mencegah masalah penguncian yang telah terlihat di mysqldump baru-baru ini seperti MySQL 5.5.
Saya harap ini memberi sedikit lebih banyak wawasan ke dalam alat mydumper.