每台从机都必须有一个唯一的Server ID。如果还没有设置这个ID或者这个ID和主或者别的从有冲突,就需要设置后重启从机。具体操作,找到mysql配置文件,通常上/etc/my.cnf,打开并找到[mysqld]这部分添加 server-id=your_unique_id。
[mysql]
server-id=4
server-id的默认值上0,这个时候从机拒绝建立到主机的连接。
从机上设置binary logging enable与否不影响建立主从关系,但是如果设置了,就可以使用从机的binary log进行数据备份和从crash恢复,另外这个从机也可以在更复杂的复制拓扑结构中充当别的角色,比如在作为从机的同时又可以当作同组中别的从的主。
为了使从和主通信需要登录从机执行下面的语句:
mysql> CHANGE MASTER TO -> MASTER_HOST='master_host_name', -> MASTER_USER='replication_user_name', -> MASTER_PASSWORD='replication_password', -> MASTER_LOG_FILE='recorded_log_file_name', -> MASTER_LOG_POS=recorded_log_position;
ps:如果执行完后退出了会话,下次登陆时最好带上--skip-slave-start参数,直到执行了start slave。
成功之后再执行:
start slave;
这样这个从到主的复制关系就建立完成,其它的从如法炮制
ps:
从机把主的信息存在主信息仓库里。主信息库可以是文件也可以上表,具体由—master-info-repository参数值决定。—master-info-repository=file时 会生成master.info 和 relay-log.info2个文件,如果—master-info-repository=table,信息就会存在mysql.master_slave_info表中。不管是设置的哪种值,都不要移动或者编辑相关的文件和表。想要更改配置通过再次执行change master to …语句,变更会自动保存到相关的文件和表。这个配置对应的表或者文件里的内容会覆盖某些命令行或者my.cnf中的配置。