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-id
xá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-bin
dưới [mysqld]
trong /etc/my.cnf/var/lib/mysql
Bạ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/mysql
một máy chủ này sang /var/lib/mysql
má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ì ???
XXXX
là 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.YYYY
là 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_Running
là Yes
và Slave_SQL_Running
là 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: