标签: mysql主从同步

  • mysql主从同步设置小记

    主服务器很好配置, 分配一个唯一的server-id, 开启log-bin如下

    #开启bin日志
    log-bin=mysql-bin
    #主库上限定需要同步的dbname
    binlog-do-db=dbname
    server-id = 1591634703

    从服务器配置花了很多时间, 逛了很多博客, 看了很多文章, 最费时间的还是在配置和问题定位上.

    全部操作都是在bt和phpmyadmin上完成的.

    第一次配置好两台(主从)服务器后, 发现少了一条数据, 于是就把主数据库备份,导入从库, 好了, 数据一致了. 很快从库的复制功能报错了, 主键重复了. 从库的日志还没有执行到最新一条数据的插入, 但是我把数据直接导过来了,导致报错, Slave_SQL_Running 进程直接停止运行.

    其实这个问题很好解决, 就是跳过1条报错就行, 直接在phpmyadmin上操作.如下图:

    如果还有报错, 那就再执行一次.

    从库的配置如下:

    # 从库上限定需要同步的库
    replicate-do-db=dbname
    sync_binlog=0
    #下边两行是禁用从库的bin日志
    #log-bin=mysql-bin
    #binlog_format=mixed
    server-id = 1591634703
    #如果用了innodb引擎, 下边的配置改成2,可以降低延迟
    innodb_flush_log_at_trx_commit = 2

    phpmyadmin4.4需要修改两处代码

    libraries/config.default.php 第801行
    //$cfg['AllowArbitraryServer'] = false;
    $cfg['AllowArbitraryServer'] = true;
    
    libraries/replication_gui.lib.php 第300行
    //return PMA_DBI_connect($user, $password, false, $server, true);
    return $GLOBALS['dbi']->connect($user, $password, false, $server, true);