mysql主从同步

(一)、环境描述

  服务器A(主) 192.168.3.4(linux mint 14 and mysql5.5.29)
  服务器B(从) 192.168.3.5(windows xp and mysql5.5.19)
  主从需同步的数据库内容保持一致。说明:从数据库里面要同步的库必须和主数据库里一直,比如主数据库里面有一个app_database库,从数据库里面也应该有app_database库,里面的表也须一致。这里仅同步数据,不同步结构。

(二)、主从配置过程

     对主服务器进行配置,即对A服务器进行配置

  1. 创建同步用户,在主服务器上为从服务器建立一个连接帐户,该帐户必须授予REPLICAITON SLAVE权限。在主服务器登陆mysql上执行
    grant replication slave on *.* to 'replication'@'192.168.3.%' identified by '123456';
    flush privileges;
  2. 修改主服务器上面mysql的配置文件my.cnf
    server-id		= 1
    log_bin			= /var/log/mysql/mysql-bin.log
    expire_logs_days	= 10
    max_binlog_size         = 100M
    binlog_do_db		= web_site #要同步的库,多个可以复制一行
    binlog_ignore_db	= information_schema
    binlog_ignore_db	= performance_schema
    binlog_ignore_db	= mysql
    binlog_ignore_db	= test
    
  3. 重启主服务器上面的mysql数据库
    sudo /etc/init.d/mysql restart
  4. 查看主服务器的状态
     mysql> show master status\G;
    可以看到下列信息即可,注意下列File及Position将在从服务器配置时用到
    *************************** 1. row ***************************
                File: mysql-bin.000003
            Position: 5917
        Binlog_Do_DB: web_site
    Binlog_Ignore_DB: information_schema,performance_schema,mysql,test
    1 row in set (0.00 sec)

     对从服务器进行配置,即对B服务器进行配置

  1. 修改从服务器的mysq配置文件my.ini,如下
    [mysqld]
    server-id = 2
    log-bin = mysql-bin
    replicate-do-db = web_site
  2. 重启从服务器mysql
  3. 用change master语句指定同步位置
    mysql>change master to master_host='192.168.3.4', master_user='replication', master_password='000000', master_log_file='mysql-bin.000003', master_log_pos=107;
    
    注:master_log_file,master_log_pos由上面主服务器查出的状态值中确定。master_log_file对应File,master_log_pos对应Position。
  4. 启动从服务器线程,在从服务器登陆mysql,执行如下:
    mysql>start slave;
  5. 查看从服务器状态在从服务器登陆mysql,执行如下:
    mysql>show slave status\G;
    
    看到如下信息即可:
    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes
    

    接下来就是测试了

    可以在主服务器里插入数据,看是否同步从数据库里面。

你可能感兴趣的:(mysql,复制,主从同步)