Tidak dapat mencadangkan tabel mysql dengan mysqldump. SELECT, LOCK TABL perintah ditolak untuk 'cond_instances' [ditutup]

15

Saya mengalami kesulitan berjalan mysqldumpsebagai pengguna root mysql. Ketika saya mencoba untuk membuat cadangan mysqltabel saya mendapatkan kesalahan ini:

mysqldump: Got error: 1142: SELECT,LOCK TABL command denied to user
'root'@'localhost' for table 'cond_instances' when using LOCK TABLES

Adakah yang pernah melihat itu sebelumnya? Saya telah melihat beberapa referensi untuk mysql saya dan mysqldump saya menjadi versi yang berbeda tetapi ketika saya menjalankannya mereka berada di direktori yang sama.

Saya menjalankan MySQL 5.5.8.

bryan kennedy
sumber
1
Apakah Anda masih mendapatkan kesalahan jika Anda menjalankan mysqldumpdengan --skip-add-locks?
Martin
1
Aha, itu memperbaikinya. Saya baru saja menyadari bahwa itu bukan tabel mysql, itu adalah tabel performance_schema, yang saya lihat di beberapa dokumen memerlukan --skip-add-locks.
bryan kennedy
Saya memiliki masalah yang sama ... Saya menggunakan automysqlbackup Saya baru saja menambahkan parameter --single-transactiondan semuanya berfungsi dengan benar.
isccarrasco
Mungkin masalahnya bisa salah ketik? "LOCK TABL" bisa jadi "LOCK TABLE"
rubo77

Jawaban:

3

Tambahkan --skip-add-locks ke perintah mysqldump Anda

Martin
sumber
20

--skip-add-locks tidak berfungsi:

# mysqldump -u root -p`cat mysqlRoot.txt` --databases performance_schema --routines --quote-names --skip-add-locks > mysql_performance_schema

mysqldump: Got error: 1142: SELECT,LOCK TABL command denied to user 'root'@'localhost' for table 'cond_instances' when using LOCK TABLES

Anda ingin --skip-lock-tables sebagai gantinya

sabujp
sumber
1
Ini memperbaikinya untuk saya. Saya mengedit automysqlbackup yang dapat dieksekusi (pada instalasi saya, di / usr / local / bin) untuk memodifikasi deklarasi opt dan opt_fullschema untuk ditambahkan di --skip-lock-tables. Konfigurasi baru adalah opt = ('--quote-names' '--opt' '--skip-lock-tables') dan opt_fullschema = ('--all-database' '--routines' '--no- data '' --skip-lock-tables ')
Ted Pennings
12

(Saya menyadari ini terlambat 8 ​​bulan)

Ini bukan masalah kunci, dan solusi yang ditawarkan hanya memotong masalah sebenarnya:

Sebuah 5,5 mysqldump aplikasi tidak harus mengekspor performance_schemadatabase dalam tempat pertama.

Berdasarkan pengalaman saya sebelumnya, saya menyarankan bahwa mysqldumpprogram yang Anda gunakan adalah versi 5.1 . Bagaimana cara mengatakannya? Isu:

mysqldump --version

Sebuah 5.1 klien tidak menyadari adanya "futuristik" dari performance_schemadan oleh karena itu upaya untuk membuangnya. Tidak menyadari bahwa seharusnya tidak.

Coba dan temukan versi 5.5 , dan gunakan untuk membuang, tanpa menambahkan kunci yang disarankan, dan ini akan bekerja dengan baik.

Shlomi Noach
sumber
2
Menggunakan versi 5.5 dan masalah berlanjut
artfulrobot
1
mysqldump Ver 10.13 Distrib 5.5.32, untuk debian-linux-gnu (x86_64) memiliki masalah yang sama ...
Piku
2
jika Anda menggunakan automysqlbackup seperti beberapa pengguna di atas, Anda perlu menambahkan 'performance_schema' ke CONFIG_db_exclude parameter di automysqlbackup.conf Anda
Matija Nalis
Saya setuju dengan Shlomi di atas bahwa melewatkan kunci hanya memintas masalah sebenarnya. Ini membantu saya: askubuntu.com/questions/134670/…
workflow
0

Seperti yang disebutkan oleh Shlomi Noach, performance_schema tidak seharusnya didukung.

Cara mudah untuk memperbaikinya adalah dengan mengatur yang berikut ini di file konfigurasi Anda:

CONFIG_db_exclude=( 'performance_schema' 'information_schema' )
dumolibr
sumber