mysql主从复制(windows下)

    简单搭建mysql主从服务器(双向复制),仅供学习之用。

    1.下载mysql-advanced-5.6.16-winx64.zip

        下载完成后解压,重命名成mysql,分别放入两台服务器(看第二点集群说明)下D盘根目录下,即:D:mysqlin
       
    2.主从服务器说明
   
        服务器A:192.168.121.132(Master/Slave)
       
        服务器B:192.168.121.169(Master/Slave)
       
    3.创建配置文件
        A服务器:
       
        [mysqld]

        log_bin        

        basedir               = d:/mysql
        datadir               = d:/mysql/data
        port                = 3306
        server_id               = 1
        character-set-server  = utf8

        sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

        [mysqld_safe]
       
        log-error=d:/mysql/log/mysqld.log
        pid-file=d:/mysql/run/mysqld/mysqld.pid
       
        B服务器:
       
        [mysqld]

        log_bin        

        basedir               = d:/mysql
        datadir               = d:/mysql/data
        port                = 3306
        server_id               = 2
        character-set-server  = utf8

        sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

        [mysqld_safe]
       
        log-error=d:/mysql/log/mysqld.log
        pid-file=d:/mysql/run/mysqld/mysqld.pid
       
    4.安装mysql(A服务器和B服务器)
   
        在A服务器上启动cmd命令行,进入目录d:mysqlin
        运行命令:mysqld -install mysql(安装)
        运行命令:net start mysql(启动服务)
       
        B服务器与A服务器操作一致。
       
    5.为两台服务器分别添加一个用于主从同步的用户:
       
        A服务器:
       
        执行命令:D:mysqlinmysql -h localhost -u root -p (密码为空)
        执行命令:create user pig@'%' identified by 'root';
        执行命令:grant replication slave on *.* to pig@'%' identified by 'root';
        执行命令:grant all privileges on *.* to pig@'%' identified by 'root';
        执行命令:flush privileges;
       
        B服务器:
       
        启动CMD命令,进入D:mysqlin目录
        执行命令:D:mysqlinmysql -h localhost -u root -p (密码为空)
        执行命令:create user pig@'%' identified by 'root';
        执行命令:grant replication slave on *.* to pig@'%' identified by 'root';
        执行命令:grant all privileges on *.* to pig@'%' identified by 'root';
        执行命令:flush privileges;
                 
    6.启动主从同步
   
        A服务器:
       
        启动CMD命令,进入D:mysqlin目录
        执行命令:D:mysqlinmysql -h 192.168.121.132 -u pig -p root
        执行命令:change master to master_host='192.168.121.169',
                                   master_user='pig',
                                   master_password='root';
        执行命令:start slave;
       
        到此为止B主——>A从的的模式已经搭建成功。
       
        执行命令:show slave status G(查看从机的情况)
       
        B服务器:
                 
        启动CMD命令,进入D:mysqlin目录
        执行命令:D:mysqlinmysql -h 192.168.121.132 -u pig -p root
        执行命令:change master to master_host='192.168.121.132',
                                   master_user='pig',
                                   master_password='root';
        执行命令:start slave;
       
        到此为止A主——>B从的的模式已经搭建成功。
       
        执行命令:show slave status G(查看从机的情况)
        执行命令:show master status G(查看主机的情况)
       
    7.测试
   
        A服务器上创建数据库,可以去B上查看是否同步成功。
        B服务器上创建数据库,可以去A上查看是否同步成功。
       
        说明:需要实时查看从机情况(show slave status G),一旦出现异常,单向复制服务就会中断,不会跳过。
       
    8.错误说明
   
        错误一:主从server_id一致
        执行命令:show variables like 'server_id'; 查看server_id
        执行命令:set global server_id=100;修改server_id
       
        错误二:主从uuids一致,这是由于两个数据库复制造成。
        修改文件:d:mysqldataauto.cnf 用十六进制的值随便改一位就成了,确保主从不一致就行。

原文地址:https://www.cnblogs.com/half-two-feet/p/4586485.html