ฉันใช้automysqlbackup
สคริปต์เพื่อถ่ายโอนฐานข้อมูล mysql ของฉัน แต่ฉันต้องการให้ผู้ใช้แบบอ่านอย่างเดียวทำเช่นนี้เพื่อที่ฉันจะไม่เก็บรหัสผ่านฐานข้อมูลรูทของฉันลงในไฟล์ธรรมดา
ฉันได้สร้างผู้ใช้เช่นนั้น:
grant select, lock tables on *.* to 'username'@'localhost' identified by 'password';
เมื่อฉันเรียกใช้mysqldump
(ผ่านautomysqlbackup
หรือโดยตรง) ฉันได้รับคำเตือนต่อไปนี้:
mysqldump: Got error: 1044: Access denied for user 'username'@'localhost' to database 'information_schema' when using LOCK TABLES
ฉันทำผิดหรือเปล่า? ฉันต้องการเงินช่วยเหลือเพิ่มเติมสำหรับผู้ใช้แบบอ่านอย่างเดียวหรือไม่? หรือสามารถroot
ล็อคinformation_schema
ตารางเท่านั้น? เกิดอะไรขึ้น?
แก้ไข:
GAH และตอนนี้ก็ใช้งานได้ ฉันอาจไม่ได้เรียกใช้สิทธิ์ล้างก่อนหน้านี้
นอกจากนี้สิ่งนี้เกิดขึ้นโดยอัตโนมัติบ่อยเพียงใด
แก้ไข:
ไม่มันไม่ทำงาน การเรียกใช้mysqldump -u username -p --all-databases > dump.sql
ด้วยตนเองไม่ได้สร้างข้อผิดพลาด แต่ไม่ถ่ายโอนข้อมูล data_schema automysqlbackup
จะทำให้เกิดข้อผิดพลาด
mysqldump
: mysqldump ไม่ได้ถ่ายโอนฐานข้อมูล Information_SCHEMA ถ้าคุณชื่อฐานข้อมูลที่ชัดเจนในบรรทัดคำสั่ง mysqldump เงียบไม่สนใจมันดูเหมือนว่าทั้งหน้าคนออกจากวันที่ (และมันจะยกระดับการเตือน) หรือมีประสิทธิภาพตรวจสอบเพิ่มเติมบางประการเกี่ยวกับการถ่ายโอนข้อมูลสำหรับautomysqlbackup
information_schema
ไม่แน่ใจว่ามันคืออะไร แต่ไม่เกี่ยวข้องกับการมอบสิทธิ์ของผู้ใช้