IT技术博客大学习 共学习 共进步

mysql主从同步快速设置

某人的栖息地 2010-12-09 23:01:52 浏览 3,842 次

记录一个比较简便的mysql的主从同步设置步骤,方便日后使用。

安装环境

  • centos 5.4
  • mysql 5.1.xx 采用rpm直接安装
  • xtrabackup 1.2.22 采用rpm直接安装

    1. Master:/etc/my.cnf

    [mysqld] 
    server-id = 1 
    log-bin 
    innodb_flush_log_at_trx_commit=1 
    sync_binlog=1 
    datadir=/var/lib/mysql 
     
    character-set-server=utf8 
    init_connect='SET NAMES utf8' 

    设定了默认字符集为utf8,可以按实际情况取舍这段配置。

    2. Slave:/etc/my.cnf

    [mysqld] 
    server-id=2 
    datadir=/var/lib/mysql 
     
    character-set-server=utf8 
    init_connect='SET NAMES utf8'

    3. Master:在master数据库设置用来同步的slave用户权限

     
    GRANT REPLICATION SLAVE ON *.* 
    TO '<slave_username>'@'<slave_ip>' 
    IDENTIFIED BY '<slave_password>'; 

    4. Master:导出数据到slave

    采用xtrabackup来备份mysql,好处是在master的锁表时间很短,在实际的生产环境也可以使用,并且xtrabackup会自动记录同步日志文件的位置。

     
    sudo innobackupex-1.5.1 --stream=tar /tmp/ | ssh <slave_host> "mkdir /tmp/db; tar xfi - -C /tmp/db/" 

    这个步骤会把master的数据包括表结构整个导出并压缩复制给slave,同时解压到slave的/tmp/db目录下。

    5. Slave:导入数据到slave

    innobackupex-1.5.1 --apply-log /tmp/db 
    innobackupex-1.5.1 --copy-back /tmp/db 
    chown -R mysql.mysql /var/lib/mysql/*

    6. Slave:开始同步数据

    查看/var/lib/mysql/xtrabackup_binlog_info,获得日志文件以及position。

     
    CHANGE MASTER TO 
    MASTER_HOST='<master_host>', 
    MASTER_USER='<slave_username>', 
    MASTER_PASSWORD='<slave_password>', 
    MASTER_LOG_FILE='<see xtrabackup_binlog_info>', 
    MASTER_LOG_POS=<see xtrabackup_binlog_info>; 
     
    START SLAVE; 
  • 建议继续学习

    1. mysql 主从配置中的server-id的作用 (阅读 7,662)
    2. 内存表在同步环境注意事项 (阅读 5,585)
    3. 也谈PostgreSQL的同步配置(Slony) (阅读 5,407)
    4. MySQL5.5数据库复制搭建报错之Could not initialize master info structure (阅读 5,284)
    5. PHP查询MySQL大量数据的内存占用分析 (阅读 4,924)
    6. MTU值的调整导致MySQL复制异常 (阅读 4,663)
    7. MySQL复制的概述、安装、故障、技巧、工具 (阅读 4,264)
    8. [MySQL优化案例] — slave延迟很大优化方法 (阅读 3,845)
    9. 如何监控主从之间的延时:seconds_behind_master OR mk-heartbeat (阅读 3,824)
    10. 自己动手实现Multi-Master Replication (阅读 3,822)