Saya menggunakan automysqlbackup
skrip untuk membuang basis data mysql saya, tetapi saya ingin memiliki pengguna read-only untuk melakukan ini sehingga saya tidak menyimpan kata sandi basis data root saya dalam file plaintext.
Saya telah membuat pengguna seperti ini:
grant select, lock tables on *.* to 'username'@'localhost' identified by 'password';
Ketika saya menjalankan mysqldump
(baik melalui automysqlbackup
atau secara langsung) saya mendapatkan peringatan berikut:
mysqldump: Got error: 1044: Access denied for user 'username'@'localhost' to database 'information_schema' when using LOCK TABLES
Apakah saya salah? Apakah saya memerlukan hibah tambahan untuk pengguna hanya baca saya? Atau hanya bisa root
mengunci information_schema
meja? Apa yang sedang terjadi?
Edit:
GAH dan sekarang berfungsi. Saya mungkin belum pernah menjalankan FLUSH PRIVILEGES sebelumnya.
Selain itu, seberapa sering hal ini terjadi secara otomatis?
Edit:
Tidak, itu tidak berhasil. Menjalankan mysqldump -u username -p --all-databases > dump.sql
secara manual tidak menghasilkan kesalahan, tetapi tidak membuang information_schema. automysqlbackup
tidak menimbulkan kesalahan.
sumber
mysqldump
: mysqldump tidak membuang database INFORMATION_SCHEMA. Jika Anda memberi nama database itu secara eksplisit pada baris perintah, mysqldump diam-diam mengabaikannya. Sepertinya halaman manual kedaluwarsa (dan memang memunculkan peringatan), atauautomysqlbackup
sedang melakukan beberapa pemeriksaan tambahan pada dump untukinformation_schema
. Tidak yakin yang mana, tapi itu tidak terkait dengan hibah pengguna.Jawaban:
Izin-izin itu haruslah yang dibutuhkan untuk mysqldump.
Karena Anda telah memberikan LOCK TABLES, dan kesalahan pada LOCK TABLES, sepertinya izinnya tidak konsisten. Sudahkah Anda menjalankan
FLUSH PRIVILEGES
?sumber
Ups ... dari halaman manual untuk
mysqldump
:Sepertinya halaman manual kedaluwarsa (dan memang menimbulkan peringatan), atau
automysqlbackup
sedang melakukan beberapa pemeriksaan tambahan pada dumpinformation_schema
.Tidak yakin yang mana, tapi itu tidak terkait dengan hibah pengguna.
Edit
Yap, ini adalah bug dalam
automysqlbackup
versi 2.5.1 (menggunakan MySQL 5.1.41 di bawah Ubuntu 10.04) - ia mencoba melakukan backupinformation_schema
ketika seharusnya tidak.PERBAIKI: Tambahkan
information_schema
keDBEXCLUDE
pada baris 76 dari skrip.sumber
Buat pengguna
Periksa hak istimewa
Gunakan editor favorit Menunjuk untuk membuat file
~/.my.cnf
denganchmod 400
Buat folder untuk dump, seperti contohnya
Periksa apakah itu berfungsi
Secara opsional, Anda dapat melakukan dump
daily
danweekly
kemudian menghapus semua yangdaily
lebih tua bulan itusumber