17.1.1.8?Setting Up Replication with Existing Data设置复制使用存在的数据 当设置复制使用存在的数据,你需要确定如何最好的从master 得到数据到slave 在开始复制服务前: 基本的过程对于设置复制使用存在的数据如下: 1. 在MySQL master 运行时,创建一个用户被slave使用 当连接到Master 在复制期间 2.如果你没有配置server-id和启动binary logging 在master server上,你需要关闭它来配置这些选项 如果你需要关闭你的master server,这是一个很好的机会,来创建数据库的快照。 你可以得到master status在关闭master前, 更新配置和创建一个快照。 3.如果你的服务器已经配置正确,得到 它的状态 然后使用mysqldump 来创建快照 4. 更新slave的配置 5. 下一步依赖如何创建master的快照数据 如果你使用mysqldump a. 启动slave,使用e --skip-slave-start option 这样复制不会开始 b.导入dump文件 6.配置slave 的配置坐标从master, 这个告诉slave binary log 文件和位置 在文件里 ,复制的起点。 此外,配置slave 的认证机制和master的host name 。 7.启动SLAVE 在你执行这个过程中,slave 应该连接到master和捕获任何更新,在快照应用后的任何更新 如果你忘记设置server-id选项对于master,slaves不能连接到它 如果你忘记设置server-id 选项在slave上,你会得到下面的slave的错误日志: Warning: You should set server-id to a non-0 value if master_host is set; we will force server id to 2, but this MySQL server will not act as a slave. 你也可以找到错误信息在slave的错误日志 如果不能复制由于任何其他原因 slaves使用信息存在在它的master info 库中来跟踪 master的binlog 已经处理的多少。 信息库可以是文件或者表, 通过设置--master-info-repository 当一个slave 运行 --master-info-repository=FILE, 你可以找到它的目录2个文件, named master.info and relay-log.info. 如果 -master-info-repository=TABLE instead, 这些信息会保存到表master_slave_info 在mysql的数据库 在任何一种情况下, 不要删除或者编辑文件或者表 除非你准确知道你正在做什么和完全理解影响。 即使在这种情况下, 最好使用CHANGE MASTER TO 语句来改变复制参数。 slave可以使用 指定的值在语句里来更新状态文件。 注意: