Nếu bạn có kịch bản sau đây
- tất cả dữ liệu của bạn là innodb
- bạn đã đăng nhập nhị phân trên RDS
bạn có thể tạo một người dùng trong RDS như thế này
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'leopd'@'%' IDENTIFIED BY 'repl_password';
Nếu Amazon không cho phép '%' cho tên máy chủ, bạn sẽ cần một địa chỉ IP công cộng cụ thể
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'leopd'@'xxx.xx.xx.xxx';
Tiếp theo, mysqldump dữ liệu ra khỏi RDS như một giao dịch đơn lẻ
mysqldump -u... -p... --single-transaction --master-data=1 --all-databases --routines --triggers > /root/MySQLData.sql
Chạy lệnh CHANGE MASTER TO bằng cách sử dụng leopd@'xxx.xx.xx.xxxx 'với tư cách là người dùng (xxx.xx.xx.xxxx là địa chỉ IP của RDS)
CHANGE MASTER TO
master_host = 'xxx.xx.xx.xxxx',
master_port = 3306,
master_user = 'leopd',
master_passwowrd = 'repl_pass'
master_log_file='slsnbj',
master_log_pos=1;
Tải dữ liệu vào một máy chủ mới. Đừng lo lắng về master_log_file = 'slsnbj' và master_log_pose = 1. Dòng 22 của bãi chứa sẽ có tệp nhật ký và vị trí chính xác.
Chạy BẮT ĐẦU; trên máy chủ mới
Nó sẽ bắt đầu làm việc. Bạn có thể phải lo lắng về việc xem xét tường lửa.
Hãy thử một lần !!!
CẬP NHẬT 2012 / 03-23 17:11 EDT
Bạn chỉ còn một cơ hội. Xem nếu bạn có thể thiết lập đặc quyền cuối cùng với điều này:
UPDATE mysql.user SET Repl_slave_priv = 'Y' WHERE user='root' AND host='%';
FLUSH PRIVILEGES;
Có lẽ điều này đang bị chặn đối với người dùng có% trong cột máy chủ của mysql.user.
Bạn có thể cần tạo một người dùng khác có IP công khai cứng như tôi đã đề xuất trước đó
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'leopd'@'xxx.xx.xx.xxx';
Các nô lệ sao chép có thể có trong RDS cũng phải là RDS.