Haluk Asked: 2012-07-21 07:40:38 +0800 CST2012-07-21 07:40:38 +0800 CST 2012-07-21 07:40:38 +0800 CST 为 MyISAM 表设置复制? 772 在 MySQL 中设置复制之前,首先需要将数据传输到从站。 由于 MyISAM 表可以复制为文件。可以将 MyISAM 文件 .myd .myi .frm 复制到从站吗?这足以开始复制吗? mysql replication 1 个回答 Voted Best Answer RolandoMySQLDBA 2012-07-21T08:29:51+08:002012-07-21T08:29:51+08:00 由于一切都是MyISAM,这就是你需要做的 STEP 01) 将 Master 配置为 Replication Master 如果 /etc/my.cnf 中没有server-id定义,添加一个 [mysqld] server-id=1 和service mysql restart 步骤 02) 检查主服务器上的二进制日志 如果主服务器上的二进制日志记录处于活动状态,请执行此操作 RESET MASTER; 删除所有二进制日志并重新开始。 如果二进制日志记录未激活,请执行此操作 在/etc/my.cnflog-bin=mysql-bin下添加[mysqld] 服务mysql重启 步骤 03) 复制/var/lib/mysql 您可以将rsync/var/lib/mysql设置为从一台服务器到/var/lib/mysql另一台服务器上执行 MyISAM 表的暴力逐字节复制。在最后一次 rsync 之前,您将执行多个 rsync,这非常快。然后,您将完全关闭 MySQL 并再执行一次 rsync。在 Master 和 Slave 上启动 mysql。 步骤 04) 在从站上创建复制用户 GRANT REPLICATION CLIENT,REPLICATION SLAVE ON *.* TO replicator@'PrivateIPofSlave' IDENTIFIED BY 'r3pl1cAt0r'; 步骤 05) 设置复制 在从站上运行此命令 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 和 YYYY 是什么??? XXXX是您执行最终 rsync 时的最后一个二进制日志文件。从站上的 /var/lib/mysql 中有该文件的副本。只需ls -l /var/lib/mysql/mysql-bin.0*在 Slave 上运行并使用最后一个二进制日志。 YYYY是执行最终 rsync 时最后一个二进制日志文件的位置。有趣的是,位置也是二进制日志的文件大小。只需ls -l /var/lib/mysql/mysql-bin.0*在 Slave 上运行并将最后一个二进制日志的文件大小作为位置YYYY。 STEP 06) 检查复制 运行这个 SHOW SLAVE STATUS\G 如果Slave_IO_Running是Yes和Slave_SQL_Running是Yes,恭喜你完成了! 我写过类似的帖子,关于使用 rsync 是这样的: MySQL 从属复制重置,没有主停机时间(使用 MyISAM)(ServerFault 上的 2011 年 7 月 8 日),带有示例代码!!! 从另一个从站创建一个 MySQL 从站,但将其指向主站(ServerFault 上的 2011 年 4 月 8 日) MySQL 复制 - 将新的从属引入复制(2011 年 2 月 23 日)
由于一切都是MyISAM,这就是你需要做的
STEP 01) 将 Master 配置为 Replication Master
如果 /etc/my.cnf 中没有
server-id
定义,添加一个和
service mysql restart
步骤 02) 检查主服务器上的二进制日志
如果主服务器上的二进制日志记录处于活动状态,请执行此操作
删除所有二进制日志并重新开始。
如果二进制日志记录未激活,请执行此操作
log-bin=mysql-bin
下添加[mysqld]
步骤 03) 复制
/var/lib/mysql
您可以将rsync
/var/lib/mysql
设置为从一台服务器到/var/lib/mysql
另一台服务器上执行 MyISAM 表的暴力逐字节复制。在最后一次 rsync 之前,您将执行多个 rsync,这非常快。然后,您将完全关闭 MySQL 并再执行一次 rsync。在 Master 和 Slave 上启动 mysql。步骤 04) 在从站上创建复制用户
步骤 05) 设置复制
在从站上运行此命令
XXXX 和 YYYY 是什么???
XXXX
是您执行最终 rsync 时的最后一个二进制日志文件。从站上的 /var/lib/mysql 中有该文件的副本。只需ls -l /var/lib/mysql/mysql-bin.0*
在 Slave 上运行并使用最后一个二进制日志。YYYY
是执行最终 rsync 时最后一个二进制日志文件的位置。有趣的是,位置也是二进制日志的文件大小。只需ls -l /var/lib/mysql/mysql-bin.0*
在 Slave 上运行并将最后一个二进制日志的文件大小作为位置YYYY
。STEP 06) 检查复制
运行这个
如果
Slave_IO_Running
是Yes
和Slave_SQL_Running
是Yes
,恭喜你完成了!我写过类似的帖子,关于使用 rsync 是这样的: