美文网首页
数据库主主同步

数据库主主同步

作者: 山中人T | 来源:发表于2018-12-27 23:05 被阅读0次

    1. 修改数据库配置文件 my.cnf

    # vim /etc/my.cnf

    [mysqld]

    datadir=/var/lib/mysql

    socket=/var/lib/mysql/mysql.sock

    user=mysql

    # Disabling symbolic-links is recommended to prevent assorted security risks

    symbolic-links=0

    # 服务器的ID, 必须唯一,一般设置自己的IP

    server_id=241

    # 复制过滤:不需要备份的数据库(MySQL库一般不同步)

    binlog-ignore-db=mysql

    # 开启二进制日志功能,名字可以随便取,最好有含义(比如项目名)

    log-bin=edu-mysql-bin

    # 为每个 session 分配的内存,在事务过程中用来存储二进制日志的缓存

    binlog_cache_size=1M

    # 主从复制的格式(mixed,statement,row,默认格式是 statement)

    binlog_format=mixed

    # 二进制日志自动删除/过期的天数。默认值为 0,表示不自动删除。

    expire_logs_days=7

    ## 跳过主从复制中遇到的所有错误或指定类型的错误,避免 slave 端复制中断。

    ## 如:1062 错误是指一些主键重复,1032 错误是因为主从数据库数据不一致

    slave_skip_errors=1062

    # 作为从服务器时的中继日志

    relay_log=edu-mysql-relay-bin

    # log_slave_updates 表示 slave 将复制事件写进自己的二进制日志

    log_slave_updates=1

    # 主键自增规则,避免主从同步ID重复的问题

    auto_increment_increment=2   # 自增因子(每次加2)

    auto_increment_offset=1         #  自增偏移(一个填1,另一个填2)

    [mysqld_safe]

    log-error=/var/log/mysqld.log

    pid-file=/var/run/mysqld/mysqld.pid

    修改完成后重启数据库

    /etc/init.d/mysqld restart

    2. 配置同步账号并开启同步

    设置 masterA (假设IP 为 192.168.188.2)

    # mysql -uroot -p123456     #  登录mysql,不要照抄,-u后面是账号,-p后面是密码

    grant replication slave on *.* to 'repl'@'192.168.188.3' identified by '123456';  // 创建mysql账号repl,只容许指定ip访问,这里设置为MasterB

    flush privileges;            // 刷新授权表信息

    flush tables with read lock;    // 锁定数据库表暂时无法写服务;

    show master status;        // 查看binlog文件值与pos值

    stop slave;            // 关闭同步

    设置 masterB(192.168.188.3)

    # mysql -uroot -p123456     #  登录mysql,不要照抄,-u后面是账号,-p后面是密码

    grant replication slave on *.* to 'repl'@'192.168.188.2' identified by '123456';     //创建用户,允许MasterA登录本机器

    flush privileges;                //刷新授权表

    stop slave;                        //关闭同步

    show master status;        //查看binlog文件值与pos值

    change master to master_host='192.168.188.2', master_user='repl', master_password='123456', master_log_file='test01.000001', master_log_pos=664383;  //这里注意log_file与pos值都要对应对应A的  show master status;值

    start slave; //开启同步

    设置 masterA

    change master to master_host='192.168.188.3', master_user='repl', master_password='123456', master_log_file='test02.000001', master_log_pos=664343; //这里log_file与pos值写的必须是B上show master status;的值

    start slave;                    //开启同步

    unlock tables;                //解锁写

    3. 查看同步状态

    show slave status\G;

    主要看以下两个参数,这两个参数如果是Yes就表示主从同步正常

    Slave_IO_Running: Yes

    Slave_SQL_Running: Yes

    引用:https://blog.csdn.net/xiyang_1990/article/details/51420513

    相关文章

      网友评论

          本文标题:数据库主主同步

          本文链接:https://www.haomeiwen.com/subject/prrslttx.html