ฉันพยายามย้ายฐานข้อมูลที่มีอยู่จาก MySQL ที่ทำงานบน EC2 ไปยังอินสแตนซ์ Amazon RDS ใหม่ (การทดลองเพื่อดูว่าเราสามารถย้ายข้าม) จนถึงตอนนี้มันยังไม่ดี ฉันติดอยู่ที่การนำเข้าเริ่มต้นก่อนที่จะตั้งค่าการจำลองแบบ (คำแนะนำที่นี่ )
ฉันได้เตรียมอินสแตนซ์ RDS ตามที่อธิบายไว้และสามารถเชื่อมต่อได้จากอินสแตนซ์ EC2 โดยใช้ mysql ฉันรันคำสั่ง mysqldump เป็น:
mysqldump --master-data --databases db1 db2 > dump.sql
จากนั้นพยายามอัปโหลดไปยัง RDS ด้วย:
mysql -h RDSHost -P 3306 -u rdsuser --password=rdspassword < dump.sql
ปัญหาแรกอยู่ที่บรรทัดที่ 22 ของดัมพ์:
เปลี่ยน MASTER เป็น MASTER_LOG_FILE = 'mysql-bin.000002', MASTER_LOG_POS = 106;
ERROR 1227 (42000) at line 22: Access denied; you need (at least one of) the SUPER privilege(s) for this operation
สายข้อผิดพลาดที่เกิดขึ้นนี้ ไม่มีปัญหาเพียงแค่แสดงความคิดเห็นในบรรทัดนั้นและหวังว่าจะแก้ไขในภายหลังผ่านทาง mysql.rds_set_external_master () ลองอัปโหลดอีกครั้งและได้รับข้อผิดพลาดที่คล้ายกันมาก: ERROR 1227 (42000) at line 7844: Access denied; you need (at least one of) the SUPER privilege(s) for this operation
. ส่วนรอบ ๆ บรรทัดที่ 7844 มีลักษณะเช่นนี้:
/*!50001 CREATE ALGORITHM=UNDEFINED */
/*!50013 DEFINER=`dev`@`localhost` SQL SECURITY DEFINER */
/*!50001 VIEW `jos_contributor_ids_view` AS select `jos_resource_contributors_view`.`uidNumber` AS `uidNumber` from `jos_resource_contributors_view` union select `jos_wiki_contributors_view`.`uidNumber` AS `uidNumber` from `jos_wiki_contributors_view` */;
โดยการคอมเม้นท์ 2 บรรทัดแรกและเพิ่ม 'CREATE' ลงในบรรทัดที่สามทำให้ฉันสามารถผ่านด่านนี้ได้ แต่มีตันส่วนเช่นนี้ มีวิธีรอบนี้โดยไม่มีการแก้ไขทั้งหมดหรือไม่ ชอบตัวเลือกที่mysqldump
จะไม่สร้างอะไรที่ต้องการสิทธิ์พิเศษหรือไม่?
ดูเหมือนว่าผู้คนจำนวนมากมีปัญหาที่คล้ายกันเช่นต้องทำงานsed
กับผลลัพธ์ของ mysqldump / mysqlbinlog! ฉันจะโพสต์บนฟอรัม AWS ด้วย - ฉันคิดว่า RDS ควรมีวิธีการนำเข้าที่เข้มงวดมากขึ้นจาก mysqldump หรือเครื่องมือเฉพาะที่สามารถทำงานกับฐานข้อมูลที่มีอยู่เพื่อสร้างการถ่ายโอนข้อมูลซึ่งเป็นการร้องเรียนเรื่องความปลอดภัยของ RDS แค่สงสัยว่ามีใครมีสูตรหรือลูกเล่นอื่นใดบ้างที่อาจช่วยได้ที่นี่
ขอบคุณ
เดฟ
--masterdata=2
แต่ข้อผิดพลาดแรกคุณสามารถหลีกเลี่ยงด้วยการพูดว่า บรรทัดนั้นจะถูกใส่ความคิดเห็นในการถ่ายโอนข้อมูล
log_bin_trust_function_creators
พารามิเตอร์ 1 แต่ยังคงได้รับข้อผิดพลาดเดียวกันที่เส้น 7844.