愤怒中的小草

博客园 首页 新随笔 联系 订阅 管理

https://www.cnblogs.com/rwxwsblog/p/4542417.html

http://www.cnblogs.com/gl-developer/p/6170423.html

Mysql主从复制的实现原理图大致如下(来源网络):

实现MySQL主从复制需要进行的配置:

  • 主服务器:
    • 开启二进制日志
    • 配置唯一的server-id
    • 获得master二进制日志文件名及位置
    • 创建一个用于slave和master通信的用户账号
  • 从服务器:
    • 配置唯一的server-id
    • 使用master分配的用户账号读取master二进制日志
    • 启用slave服务

主数据库:182.92.172.80 /linux

从数据库:123.57.44.85 /linux

一、主库修改

找到主数据库的配置文件my.cnf(或者my.ini),我的在/etc/my.cnf,在[mysqld]部分插入如下两行:

[mysqld]
log-bin=mysql-bin #开启二进制日志
server-id=1 #设置server-id
# 不同步哪些数据库  
binlog-ignore-db = mysql  
binlog-ignore-db = test  
  
# 只同步哪些数据库,除此之外,其他不同步  
binlog-do-db = claim_oauth
binlog-do-db = claim_tpa

重启mysql

systemctl restart mysqld;

关闭mysql

systemctl stop mysqld.service

创建用于同步的用户和密码

mysql> CREATE USER 'insure'@'172.16.120.189' IDENTIFIED BY 'Password321!';#创建用户
mysql> GRANT REPLICATION SLAVE ON *.* TO 'insure'@'172.16.120.189';#分配权限
mysql>flush privileges;   #刷新权限

查看master状态

mysql > SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 | 73       | test         | manual,mysql     |
+------------------+----------+--------------+------------------+

二、修改从库

修改my.cnf配置文件  cd /etc/my.cnf

[mysqld]
server-id=2 #设置server-id,必须唯一

启动slave同步依次执行以下三步
stop slave;

CHANGE MASTER TO
MASTER_HOST='172.16.120.190',
MASTER_USER='insure',
MASTER_PASSWORD='Password321!',
MASTER_LOG_FILE='mysql-bin.000003',
MASTER_LOG_POS=929;

start slave;

查看slave状态
show slave status\G;

 

1. 对于机器重启情况, 可手动执行stop slave.  在正常关闭mysql, 重启后,手动start slave, 应该就可以正常同步。

2. 线上系统,重启一定要小心, 重启后监控相关模块是否启动,可以增加mysql slave工作监控。






posted on 2018-12-18 16:14  愤怒中的小草  阅读(135)  评论(0编辑  收藏  举报