Hal*_*luk 8 mysql myisam replication
在 MySQL 中设置复制之前,首先需要将数据传输到从属设备。
由于 MyISAM 表可以作为文件复制。可以将 MyISAM 文件 .myd .myi .frm 复制到从站吗?这足以开始复制吗?
由于一切都是 MyISAM,因此您需要执行以下操作
如果你没有server-id
在/etc/my.cnf中定义,添加一个
[mysqld]
server-id=1
Run Code Online (Sandbox Code Playgroud)
和 service mysql restart
如果 Master 上的二进制日志处于活动状态,请执行此操作
RESET MASTER;
Run Code Online (Sandbox Code Playgroud)
清除所有二进制日志并重新开始。
如果二进制日志未激活,请执行此操作
log-bin=mysql-bin
下添加[mysqld]
/var/lib/mysql
您可以将rsync设置为从/var/lib/mysql
一台服务器到/var/lib/mysql
另一台服务器执行MyISAM 表的逐字节强力复制。您将执行多次 rsync,直到最后一次 rsync,这非常快。然后,您将完全关闭 MySQL 并再执行一次 rsync。在 Master 和 Slave 上启动 mysql。
GRANT REPLICATION CLIENT,REPLICATION SLAVE
ON *.* TO replicator@'PrivateIPofSlave' IDENTIFIED BY 'r3pl1cAt0r';
Run Code Online (Sandbox Code Playgroud)
在 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;
Run Code Online (Sandbox Code Playgroud)
XXXX 和 YYYY 是什么???
XXXX
是您执行最终 rsync 时的最后一个二进制日志文件。Slave 上的 /var/lib/mysql 中有该文件的副本。只需ls -l /var/lib/mysql/mysql-bin.0*
在 Slave 上运行并使用最后一个二进制日志。YYYY
是执行最终 rsync 时最后一个二进制日志文件的位置。有趣的是,位置也是二进制日志的文件大小。只需ls -l /var/lib/mysql/mysql-bin.0*
在 Slave 上运行并将最后一个二进制日志的文件大小作为 position YYYY
。运行这个
SHOW SLAVE STATUS\G
Run Code Online (Sandbox Code Playgroud)
如果Slave_IO_Running
是Yes
和Slave_SQL_Running
是Yes
,恭喜你完成了!!!
我写过类似的关于使用 rsync 的帖子,如下所示:
归档时间: |
|
查看次数: |
7413 次 |
最近记录: |