三、配置
1)配置过程概要
(1)主库新建复制账号
(2)主库开启binlog,配置server_id,从库配置server_id,从库配置中继日志,日志更新是否写入本地,设置只读
(3)启动复制,change master to ......
2)这里假设主库运行一段时间,配置从库,不停库增加从库,详细步骤如下(mysqldump方式 也可xtrabackup方式):
1)从库mysql数据库安装省略,mysql版本如下,需在主从库确认版本是否一致,确保从库版本大于等于主库:
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.6.19 |
+-----------+
1 row in set (0.00 sec)
2)主库配置复制账号,赋予replication slave权限。
grant replication slave, super,reload on *.* to 'slave3306'@'192.168.1.%' identified by 'slavepwd';
这里如果报错ERROR 1827 (HY000): The password hash doesn't have the expected format
可执行 set old_passwords=0; 解决。
3)主库my.cnf配置
[mysqld]
default-storage-engine=InnoDB
datadir=/data/mysql/mysql3306/data
log-bin=/data/mysql/mysql3306/log/binlog3306
server-id=1
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
从库my.cnf配置
[mysqld]
datadir=/data/mysql/mysql3307/data
default-storage-engine = InnoDB
log-bin=/data/mysql/mysql3307/log/mysql3307
server-id=2
log_slave_updates = 1
relay-log=relay-bin
relay-log-index=relay-bin
replicate-ignore-db=mysql
replicate-ignore-db=information_schema
log_bin_trust_function_creators = 1
重启主库、从库
4)备份主库
mysqldump -uroot -proot--routines --single_transaction --master-data=2 --databases testData > testData .sql
--routines:导出存储过程和函数
--single_transaction:导出开始时设置事务隔离状态,并使用一致性快照开始事务,然后unlock tables;而lock-tables是锁住一张表不能写操作,直到 dump完毕.
5)备份拷贝到从库并恢复
mysql -uroot -proot -e 'create database testData
mysql -uroot -proot testData < testData .sql
6)在备份文件testData 查看binlog和pos值
head -25 testData .sql
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=107; #大概22行
start slave;
四、复制拓扑
1)一主库多备库
2)主动模式下的 主—主复制
3)被动模式下的 主—主复制
4)拥有备库的主主结构
5)环形复制
6)主库、分发主库以及备库
7)树状复制或金字塔型
8)定制的复制方案