Tôi đã cố gắng chuyển một db hiện có từ MySQL chạy trên EC2 sang một phiên bản Amazon RDS mới (một thử nghiệm để xem liệu chúng tôi có thể di chuyển qua không). Cho đến nay, nó sẽ không tốt. Tôi bị kẹt ở lần nhập đầu tiên trước khi thiết lập sao chép (hướng dẫn tại đây ).
Tôi đã chuẩn bị phiên bản RDS như được mô tả và có thể kết nối với nó từ phiên bản EC2 bằng mysql. Tôi đã chạy lệnh mysqldump như:
mysqldump --master-data --databases db1 db2 > dump.sql
Sau đó đã cố tải nó lên RDS với:
mysql -h RDSHost -P 3306 -u rdsuser --password=rdspassword < dump.sql
Vấn đề đầu tiên là ở dòng 22 của bãi chứa:
THAY ĐỔI MASTER ĐẾN MASTER_LOG_FILE = 'mysql-bin.000002', MASTER_LOG_POS = 106;
Dòng này gây ra lỗi ERROR 1227 (42000) at line 22: Access denied; you need (at least one of) the SUPER privilege(s) for this operation
. Không có vấn đề gì, chỉ cần bình luận ra dòng đó và hy vọng sẽ sửa nó sau thông qua mysql.rds_set_external_master (). Đã thử lại quá trình tải lên và gặp một lỗi rất giống nhau : ERROR 1227 (42000) at line 7844: Access denied; you need (at least one of) the SUPER privilege(s) for this operation
. Phần xung quanh dòng 7844 trông như thế này:
/*!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` */;
Bằng cách nhận xét 2 dòng đầu tiên và thêm 'TẠO' vào dòng thứ ba, tôi đã có thể vượt qua dòng này. Nhưng có hàng tấn các phần như thế này. Có cách nào đó mà không cần chỉnh sửa? Giống như một tùy chọn để mysqldump
không sản xuất bất cứ thứ gì cần đặc quyền SUPER?
Có vẻ như nhiều người đã gặp vấn đề tương tự, như phải chạy sed
ngược lại đầu ra của mysqldump / mysqlbinlog! Tôi cũng sẽ đăng bài trên diễn đàn AWS - thực sự tôi nghĩ rằng RDS nên có cách nhập khẩu khoan dung hơn từ mysqldump hoặc một công cụ cụ thể có thể chạy với db hiện có để tạo một bãi chứa khiếu nại với bảo mật RDS. Chỉ tự hỏi nếu có ai có bất kỳ công thức nấu ăn hoặc thủ thuật khác có thể giúp đỡ ở đây.
Cảm ơn,
Dave
--masterdata=2
. Dòng này sau đó sẽ được nhận xét trong bãi chứa.
log_bin_trust_function_creators
tham số thành 1, nhưng vẫn gặp lỗi tương tự ở dòng 7844.