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可以使用 指定的值在语句里来更新状态文件。
注意: