Saya menggunakan automysqlbackupskrip 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 automysqlbackupatau 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 rootmengunci information_schemameja? 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.sqlsecara manual tidak menghasilkan kesalahan, tetapi tidak membuang information_schema. automysqlbackuptidak 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), atauautomysqlbackupsedang melakukan beberapa pemeriksaan tambahan pada dump untukinformation_schema. Tidak yakin yang mana, tapi itu tidak terkait dengan hibah pengguna.