zoukankan      html  css  js  c++  java
  • MySQL主从配置

    创建MySQL主实例

    创建MySQL新实例,可以参考上篇博文: MySQL初始化与用户配置 www.cnblogs.com/qiusuo/p/9451717.html

    bin-log配置

    # log bin for master
    server-id                = 1                     # 必须配置server-id,并且与其他相关实例不同
    binlog-do-db             = dbname                # 针对那些database有log-bin,对于多个可以分行写
    binlog-ignore-db         = mysql                 # 忽略那些database的log-bin,对于多个可以分行写
    binlog-ignore-db         = test 
    
    log-bin                  = mysql-bin             # log-bin的存储位置,可以是相对于datadir,也可以是绝对路径
    log-bin-index            = mysql-bin.index
    binlog-format            = mixed                 # binlog的格式,mixed,statement,row,默认格式是statement
    expire-logs-days         = 10                    # binlog的保留天数,为0则永久保留
    binlog-cache-size        = 1M
    max-binlog-size          = 1G

    replication用户配置

    为用户增加replication权限

    grant replication slave on *.* to 'user'@'host' identified by 'password';

    查看主实例状态

    show master status;

    show master status G;

    创建MySQL从实例

    拷贝主实例的数据

    方法1:拷贝主实例的datadir,作为从实例的数据文件夹。

    方法2:dump主实例的数据,导入到从实例中。

    方法3:建立主从实例后,锁主库,导出主库,解锁主库。导入从库,开启slave同步。

    保证从实例的数据状态和主实例未产生binlog前的状态一致。

    replicate配置

    # replicate from slave
    server-id                = 2
    master-host              = master-hostname
    master-port              = 3306
    master-user              = user
    master-password          = password
    replicate-do-db          = dbname
    replicate-ignore-db      = test
    replicate-ignore-db      = mysql
    
    relay-log-purge          = 1                    # 自动删除无用的relay-log
    relay-log-recovery       = 1 # 因异常导致relay-log错误,是否删除并重新从master获取。需配合relay-log-purge=0 relay-log = relay-log relay-log-index = relay-log.index
    relay-log-info-file = relay-log.info max-relay-log_size
    = 1G
    log-slave-updates = 1 #启用从库日志,这样可以设置链式复制,否则从master中同步binlog的修改不会写入从库的bin-log

    启用查看slave状态

    slave start;

    show slave status G;

    如果Slave_IO_Running和Slave_SQL_Running都是Yes,表示成功了。

    首次同步方式

    对主实例进行锁表操作:FLUSH TABLES WITH READ LOCK;

    导出主实例数据库备份:mysqldump  --host xxxx --port xxx -u user -p password --databases dbname > db_dbname.dump

    清除主实例binlog,重置master:reset master;

    解锁主库:unlock tables;

    将数据导入从实例:mysql  --host xxxx --port xxx -u user -p password < db_dbname.dump

    启动从实例slave:slave start;

    发布地址:www.cnblogs.com/qiusuo/p/9643174.html

  • 相关阅读:
    AngularJS Insert Update Delete Using PHP MySQL
    Simple task manager application using AngularJS PHP MySQL
    AngularJS MySQL and Bootstrap Shopping List Tutorial
    Starting out with Node.js and AngularJS
    AngularJS CRUD Example with PHP, MySQL and Material Design
    How to install KVM on Fedora 22
    Fake_AP模式下的Easy-Creds浅析
    河南公务员写古文辞职信
    AI
    政协委员:最大愿望是让小学生步行上学
  • 原文地址:https://www.cnblogs.com/qiusuo/p/9643174.html
Copyright © 2011-2022 走看看