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.
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.