step1、修改配置:
必配项:
一、主从关系组内唯一的server ID,取值范围是1~(232)-1
二、启用二进制日志,如果这两项任意一项以前没有配置过,配好以后都需要重启准备作为主的服务器
配置方法:
关闭MySQL服务器,找到my.cnf或者my.ini文件打开,找到[mysqld]部分添加下面2行。server-id可以自行跟进需要修改,修改保存以后,重启服务器
[mysqld] log-bin=mysql-bin server-id=1
注意:
1.如果使用的是事务型的存储引擎innodb,为了最大可能的持久性和数据一致性,需要在my.cnf文件中设置innodb_flush_log_at_trx_commit=1, sync_binlog=1
2.主服务器的配置中要确保skip-networking选项不可用,否则从无法和主通讯导致复制关系建立失败
step2、为了使从可以连接到主,还需要为从创建用户和密码。
多个从可以使用相同或不同的用户名密码,创建的用户需要赋予必要的权限replication slave,在主服务器上执行以下sql
CREATE USER 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%.mydomain.com';
step3、获取主的二进制日志坐标
如果主机之前在运行的时候没有启用二进制日志,那么show master status 或者mysqldump —master-data得到的就是空。这时在为从配置日志文件和位置时日志文件是’’,文件位置是4。
如果主机之前已经启用了二进制日志,按以下步骤获取坐标
1、通过命令行连接到主,然后执行
FLUSH TABLES WITH READ LOCK;
执行后不要退出命令行,否则读锁就会被释放
2、另开一个连接主的会话,执行:
SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 | 73 | test | manual,mysql |
+------------------+----------+--------------+------------------+
3、如果主上没有旧数据需要同步到从, 退出执行读锁的会话或者在会话里释放掉锁:
unlock tables;
4、如果主上有旧数据需要同步到从,选一种方式制作数据快照