zoukankan      html  css  js  c++  java
  • MySql 多服务器数据库同步

    1). 配置语句说明(基本知识):
    #服务器ID, 每台服务器的ID不能设为相同的数.
    server-id=1

    #启用从库日志,这样可以进行链式复制
    log-slave-updates

    #从库是否只读,0表示可读写,1表示只读
    read-only=1

    #只复制某个表
    replicate-do-table=tablename

    #只复制某些表(可用匹配符)
    replicate-wild-do-table=tablename%

    #只复制某个库
    replicate-do-db=dbname

    #只复制某些库
    replicte-wild-do-db=dbname%

    #不复制某个表
    replicate-ignore-table=tablename

    #不复制某些表
    replicate-wild-ignore-table=tablename%

    #不复制某个库
    replicate-ignore-db=dbname

    #出现错误后忽略,如果不加这个,出现任何错误,同步进程会终止
    slave-skip-errors=all

    sync_binlog =1

    #复制完的sql语句是否立即从中继日志中清除,1表示立即清除
    relay-log-purge=1

    #从服务器主机,用于show slave hosts生成从库清单
    report-host=hostname

    #主服务器主机地址与端口, 用于从服务器连接到主服务器
    master-host=hostname
    master-port=3306

    #主服务器数据库用户名与密码(请赋予复制的权限(slave))
    master-user=dbuser
    master-password=password

    #预设重试间隔时间
    master-connect-retry=60

    #开启数据库日志
    log-bin=mysql-bin.log

    #要同步的数据库的名字
    binlog-do-db=dbname

    #不要同步的数据库的名字
    binlog-ignore-db=dbname

    2).实例配置

    a). A机(master)  ip: 210.21.104.237
    b). B机(slave)     ip: 58.177.114.3

    (所有配置都添加在my.cnf  [mysqld] 配置段下)
    Master : A机配置
    server-id=1
    log-bin=mysql-bin.log
    binlog-do-db=test
    binlog-ignore-db=mysql

    重启mysql
    登陆mysql
    增加同步帐号,最好指定登陆IP:

    #赋予全部权限
    mysql > GRANT all on *.* to 'test'@'58.177.114.3' identified by 'test';
    #只赋予replication权限
    mysql > GRANT replication slave on *.* to 'test'@'58.177.114.3' identified by 'test';
    (注意: 以上赋予权限命令都必须用on *.* 所有库, 否则会报错)
    #刷新
    mysql > FLUSH PRIVILEGES;

    #显示master状态
    mysql > SHOW MASTER STATUS;

    -----------------------------------------------------------------------------
    | File                       | Position | Binlog_Do_DB   | Binlog_Ignore_DB |
    +--------------------+----------+------------------+--------------------+
    | mysql-bin.000001 |          98 | test                   |     mysql              |
    +--------------------+----------+------------------+--------------------+
    如果显示以上信息表示master配置成功, 记下File 和 Position 两栏的数据用于配置slave

    Slave : B机配置
    server-id=2
    master-host=210.21.104.237
    master-port=3306
    master-user=test
    master-password=test
    master-connect-retry=60
    replicate-do-db=test
    replicate-ignore-db=mysql

    重启mysql
    进入数据库

    #停止slave
    mysql > slave stop;

    #配置同步文件的参数
    mysql > CHANGE MASTER TO MASTER_HOST='124.172.241.12',MASTER_USER='3glab_authen',MASTER_PASSWORD='3glab_authen',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=98;

    CHANGE MASTER TO MASTER_HOST='58.177.114.3',MASTER_USER='3glab_authen',MASTER_PASSWORD='3glab_authen',MASTER_LOG_FILE='mysql-bin.000009',MASTER_LOG_POS=98;

    #启动slave
    mysql > START SLAVE;

    mysql> show processlist;
    +----+-------------+-----------+------+------------+-------+---------------------------------------------------------------------------+-------------------+
    | Id | User                | Host         | db     | Command | Time   | State                                                                                                         | Info                     |
    +----+-------------+-----------+------+------------+-------+---------------------------------------------------------------------------+-------------------+
    |  6 | system user    |                  | NULL | Connect    | 57236 | Waiting for master to send event                                                           | NULL                   |
    |  7 | system user    |                  | NULL | Connect    | 31988 | Has read all relay log; waiting for the slave I/O thread to update it    | NULL                   |
    | 58 | root               | localhost  | NULL | Query        |     0     | NULL                                                                                                         | show processlist |
    +----+-------------+-----------+------+------------+-------+---------------------------------------------------------------------------+-------------------+
    3 rows in set (0.00 sec)
    如果显示以上信息就表示同步成功

  • 相关阅读:
    记录两种获取配置文件的方法
    jsp-自定义标签
    转载 -jsp静态包含和动态包含的区别
    Linux基础知识笔记
    关于HTTP协议
    关于orcale创建type的一些小经验(遇到的坑)
    servlet处理乱码之post和get
    发布restful类型的接口
    ros2 dashing 安装失败指南
    exit回调
  • 原文地址:https://www.cnblogs.com/showblog/p/1788058.html
Copyright © 2011-2022 走看看