1、环境

centos 7

 

2、配置master

修改/etc/my.cnf增加

[mysqld]
log-bin = master-bin
log-bin-index = master-bin.index
server-id = 1

  


3、master创建一个复制用户

CREATE USER repl_user;

GRANT REPLICATION SLAVE ON *.* TO repl_user IDENTIFIED BY '123456';

  

重启master

 

4、配置slave

修改/etc/my.cnf增加

[mysqld]
server-id = 2
relay-log-index = slave-relay-bin.index
relay-log slave-relay-bin

  

重启slave

 

 


5、master 刷新所有表,并阻止写入

mysql> flush tables with read lock;
当前二进制日志的文件名和位置
mysql> show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000006 |      107 |              |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

  

6、mysqldump导出所有需要复制的数据库

mysqldump -uroot -pmysql --all-databases --lock-all-tables >dbdump.db

  

7、解锁之前锁定的表

mysql> unlock tables;
Query OK, 0 rows affected (0.00 sec)

  

 

8、把备份文件拷贝到从库

[root@localhost opt]# scp dbdump.db root@192.168.137.106:/opt/

  

9、从库执行:

mysql> stop slave;
Query OK, 0 rows affected, 1 warning (0.00 sec)

导入文件
source /opt/dbdump.db

 

 

10、连接master和slave

CHANGE MASTER TO
MASTER_HOST = '192.168.137.105',
MASTER_PORT = 3306,
MASTER_USER = 'repl_user',
MASTER_PASSWORD = '123456',
MASTER_LOG_FILE = 'mysql-bin.000006',
MASTER_LOG_POS = 107;

START SLAVE;

  

11、查看复制状态

show slave status\G

  

12、问题

12.1如果出现Last_IO_Error: error connecting to master

原因:
1、主库防火墙是否关闭
service firewalld status
关闭防火墙
systemctl stop firewalld.service
禁止开机启动
systemctl disable firewalld.service

  

 

posted on 2015-11-03 11:03  充实自己  阅读(310)  评论(0编辑  收藏  举报