MySQL主从备份

  1. 环境
    主服务器IP:192.168.0.1
    从服务器IP:192.168.0.2
    主从数据库版本相同,或从比主版本高
  2. 主库配置

    修改my.cnf文件如下:
    server-id = 1
    
    log-bin=mysql-bin
    
    #需要备份的数据库名,如果备份多个数据库,重复设置这个选项即可
    binlog-do-db=test 
    
    #不需要备份的数据库名,如果备份多个数据库,重复设置这个选项即可
    binlog-ignore-db=mysql
    
     
    创建备份用户
    grant replication slave on *.* to [email protected] identified by 'password';
     
    显示主库信息
    记录File和Position,从库设置将会用到
    mysql> SHOW MASTER STATUS;
    +------------------+----------+--------------+------------------+
    | File             | Position | Binlog_do_db | Binlog_ignore_db |
    +------------------+----------+--------------+------------------+
    | mysql-bin.000001 | 106      |  test        |  mysql           |
    +------------------+----------+--------------+------------------+
     
  3. 导出主库:
    mysqldump -u 用户名 -p 数据库名 > 导出的文件名
    mysqldump -u root -p test > test.sql

    导入到从库:
    mysql>source test.sql
     
  4. 从库配置

    修改my.cnf文件如下:
    #此处与主库不同, required unique id between 2 and 2^32 - 1
    server-id=2 
    
    log-bin=mysql-bin
    
    replicate-do-db=test  #需要备份的数据库名
    
    replicate-ignore-db=mysql #忽略的数据库
    
    #同步自动跳过更新,与主键冲突错误
    slave_skip_errors=1032,1064
    
    #如果从服务器发现主服务器断掉,重新连接的时间差(秒)
    master-connect-retry=60 
    
    #MySQL5.5之后的注掉以下四行
    
    master-host=192.168.0.1
    
    master-user=slave
    
    master-password=password
    
    master-port=3306
     
    设置同步
    slave stop;
     
    CHANGE MASTER TO MASTER_HOST='192.168.0.1',MASTER_USER='slave',MASTER_PASSWORD='password',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=106;
    
     
    slave start;
     

    显示从库信息
    SHOW SLAVE STATUS\G;
     其中 Slave_IO_Running 和 Slave_SQL_Running 两列的值都为 "Yes",表明 Slave 的 I/O 和 SQL 线程都在正常运行。

  5. 如果不都为Yes,可以查看MySQL正在运行的线程,
    主库:
    mysql>show processlist;
    
     slave     | 192.168.0.2:52493 | NULL  | Binlog Dump |    0 | Master has sent all binlog to slave; waiting for binlog to be updated 
     
  6. 修改主库信息,检查从库是否正常同步。

你可能感兴趣的:(Mysql主从)