mysql 主从同步搭建

Mysql主从同步配置

1.编辑MySQL主上的/etc/my.cnf

log-bin=master_mysql

server-id=1

  • log-bin: Mysql 的bin-log的名字
  • server-id:Mysql实例中全局唯一,并且大于0.

1.1 修改完配置后重启mysql使其生效

service mysql restart

2.编辑Mysql从上的/etc/my.cnf

server-id=2

  • server-id : Mysql 实例中全局唯一,并且大于0。与主上的server-id 区分开

2.1 修改完配置后重启mysql,使其生效

service mysql restart

3.在Mysql主上创建用于备份账号

mysql> CREATE USER 'repl'@'%' IDENTIFIED BY 'password';

mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';

mysql> flush privileges;

4.Mysql主上枷锁,阻止所有的写入操作

mysql> FLUSH TABLES WITH READ LOCK;

5.Mysql主上,查看bin-log的文件名和位置

mysql > SHOW MASTER STATUS;

6.Mysql主上dump所有数据,

mysqldump --all-databases --master-data > dbdump.db -uroot -p

7.Mysql 主进行解锁,解锁后,主上可以写入数据

mysql> UNLOCK TABLES;

8.从库上导入之前导入的数据

mysql < dbdump.db -uroot -p

8.Mysql 从上配置主从连接信息

mysql> CHANGE MASTER TO

-> MASTER_HOST='master_host_name',

-> MASTER_PORT=port_num,

-> MASTER_USER='replication_user_name',

-> MASTER_PASSWORD='replication_password',

-> MASTER_LOG_FILE='recorded_log_file_name',

-> MASTER_LOG_POS=recorded_log_position;

  • master_host_name: mysql主的地址
  • port_num:mysql主的端口
  • replication_user_name:备份账户的用户名
  • replication_password:备份账户的密码
  • recorded_log_file_name:bin-log的文件名
  • recorded_log_position:bin-log的位置(数字型)
  • bin-log的文件名和位置 时 步骤5中的show master status得到的

10. Mysql 从上开启同步

mysql> START SLAVE;

查看Mysql从的状态

show slave status;

最后,lock all table;这个假设主库的数据非常大, 那肯定复制的过程需要花费点时间的, 但这是生产, 不可能lock all table那么久

可以使用xtrabackup工具,如https://www.cnblogs.com/gomysql/p/3650645.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值