centos7 mysql master_CentOS7x64配置MYSQL5.7 Master Slave主从复制

@1首先修改mysql配置文件  /etc/my.cnf

#ID 必须唯一

server-id=1

#二进制文件名称前缀,生成的文件mysql-bin.000001,mysql-bin.000002

log-bin=mysql-bin

#记录目前有哪些mysql-bin文件 SHOW MASTER STATUS;

log-bin-index=master-bin.index

#有更新是否立即同步到日志,性能会低,但不会丢数据。

innodb_flush_log_at_trx_commit=1

sync_binlog=1

#二进制日志自动删除的天数。默认值为0,表示“没有自动删除”

expire_logs_days=10

#二进制文件大小,操作大小生成新文件存储(最小4096byte最大1073741824(1G)默认

max_binlog_size=1073741824

#同步哪些数据库

binlog-do-db=template

##下面配置不是必须的

#数据库编码

character-set-server=utf8

#忽略表明大小写

lower_case_table_names=1

#开启慢查询日志,超过10秒则记录到日志

slow_query_log=1

long_query_time=10.000000

#默认值:128M 专用MySQL服务器设置的大小: 操作系统内存的70%-80%最佳。

#并不是设置的越大越好。设置的过大,会导致system的swap空间被占用,导致操作系统变慢,从而减低sql查询的效率。

innodb_buffer_pool_size=500M

@2在master上创建用户,用于slave连接登录

mysql> CREATE USER 'repl'@'192.168.80.%' IDENTIFIED BY 'MyPWD123!@#';

mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.80.%';repl用户必须具有REPLICATION SLAVE权限,除此之外没有必要添加不必要的权限,密码为MyPWD123!@#。

192.168.80.%,这个配置是指明repl用户所在服务器,这里%是通配符,表示192.168.80.0网段的Server都可以使用repl用户登陆主服务器,当然你也可以指定固定Ip。

@3在master上备份当前数据

mysqldump -u root -p --databases mytest --master-data > dbdump.db

--master-data 这个参数比较重要

1:首先在备份之前它会调用 FLUSH TABLES WITH READ LOCK 锁住数据库,数据库就不能进行写操作了。

2:它会在备份文件最上面记录 CHANGE MASTER TO MASTER_LOG_FILE='

mysql-bin.000002', MASTER_LOG_POS=

154,红色的可能与你测试的不一样。

它记录了master服务器二进制日志的文件名与位置,也就是当前数据截止的位置,这样当slave启动以后,就从这个点开始复制数据。

3:然后备份数据到文件。

4:最后释放锁 UNLOCK TABLES;

mysql > FLUSH TABLES WITH READ LOCK;

mysql > SHOW MASTER STATUS;

+------------------+----------+--------------+------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000003 | 73       | test         | manual,mysql     |

+------------------+----------+--------------+------------------+

mysql > UNLOCK TABLES;

上诉命令可以查看master当前日志的名称与位置,在启动slave时需要用到。

@4把数据备份拷贝到slave

scp /var/lib/mysql/dbdump.db root@192.168.80.120:/home/mysqldata/

================MASTER配置完成===================

@5配置slave  /etc/my.cnf

#唯一ID

server-id=2

#中继日志

relay-log=slave-relay-bin

relay-log-index=slave-relay-bin.index

#二进制日志自动删除的天数。默认值为0,表示“没有自动删除”

expire_logs_days=10

@6在slave上恢复master当前的数据。

mysql -u root -p mytest < /home/mysqldata/dbdump.db

然后执行命令:

CHANGE MASTER TO

MASTER_HOST='192.168.80.111',

MASTER_USER='repl',

MASTER_PASSWORD='Sql2008!@#',

MASTER_LOG_FILE='mysql-bin.000002',

MASTER_LOG_POS=154;

MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=154  注意这里一定不能写错了,

这个内容可以在dbdump.db的开头找到,记录着master备份时当前二进制文件的位置,slave在恢复数据后就从这个点开始复制数据。

开启slave同步

mysql> START SLAVE;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值