Câu trả lời:
Vì mọi thứ đều là MyISAM, đây là những gì bạn cần làm
Nếu bạn chưa server-idxác định trong /etc/my.cnf, hãy thêm một
[mysqld]
server-id=1
và service mysql restart
Nếu đăng nhập nhị phân được kích hoạt trên Master, hãy làm điều này
RESET MASTER;
để zap tất cả các bản ghi nhị phân và bắt đầu mới.
Nếu đăng nhập nhị phân không hoạt động, hãy làm điều này
log-bin=mysql-bindưới [mysqld]trong /etc/my.cnf/var/lib/mysqlBạn có thể đặt rsync để thực hiện sao chép từng byte một cách mạnh mẽ các bảng MyISAM của mình từ /var/lib/mysqlmột máy chủ này sang /var/lib/mysqlmáy chủ khác. Bạn sẽ thực hiện nhiều rsyncs cho đến rsync cuối cùng, rất nhanh chóng. Sau đó, bạn sẽ tắt hoàn toàn MySQL và thực hiện thêm một rsync. Bắt đầu mysql trên cả Master và Slave.
GRANT REPLICATION CLIENT,REPLICATION SLAVE
ON *.* TO replicator@'PrivateIPofSlave' IDENTIFIED BY 'r3pl1cAt0r';
Chạy lệnh này trên Slave
CHANGE MASTER TO
MASTER_HOST='PrivateIPofMaster',
MASTER_PORT=3306,
MASTER_USER='replicator',
MASTER_PASSWORD='r3pl1cAt0r',
MASTER_LOG_FILE='XXXX',
MASTER_LOG_POS=YYYY;
START SLAVE;
XXXX và YYYY là gì ???
XXXXlà tệp nhật ký nhị phân cuối cùng tại thời điểm bạn thực hiện rsync cuối cùng. Có một bản sao của tệp đó trong / var / lib / mysql trên Slave. Chỉ cần chạy ls -l /var/lib/mysql/mysql-bin.0*trên Slave và sử dụng nhật ký nhị phân cuối cùng.YYYYlà vị trí của tệp nhật ký nhị phân cuối cùng tại thời điểm bạn thực hiện rsync cuối cùng. Thật thú vị, vị trí cũng là kích thước tập tin của nhật ký nhị phân. Chỉ cần chạy ls -l /var/lib/mysql/mysql-bin.0*trên Slave và lấy kích thước tệp của nhật ký nhị phân cuối cùng làm vị trí YYYY.Chạy cái này
SHOW SLAVE STATUS\G
Nếu Slave_IO_Runninglà Yesvà Slave_SQL_Runninglà Yes, Xin chúc mừng Bạn đã hoàn thành !!!
Tôi đã viết các bài viết tương tự về việc sử dụng rsync như thế này: