如何在一台windows主机上搭建mysql主从复制

如题所述


    先在主数据库中创建新数据库rep_test。然后编辑主数据库的my.ini文件在[mysqld]节点中增加如下内容:server-id=1 #指定唯一的ID,1至32,必须的log-bin=mysql-log-bin #指定二进制日志存放路径,必须的binlog-do-db=rep_test #指定要同步的数据库,必须的#binlog-ignore-db=mysql #指定不要同步的数据库,如果指定了binlog-do-db就不用再指定该项
    重启主数据库,然后在主数据库中建立一个备份账户mysql>grant replication slave on *.* to [email protected] identified by 'slave' ;mysql>flush privileges;PS:identified by 指定的slave是账号[email protected] 的密码
    显示主服务器的状态信息,并且找到File 和 Position 的值记录下来;mysql>show master status;       
    在从数据库中创建新的数据库rep_test。然后编辑从数据库的my.ini文件在[mysqld]节点中增加如下内容:server-id=2 #指定唯一的ID,2至32,必须的,并且不能跟主数据库一样replicate-do-db=rep_test #指定要同步的数据库,必须的#replicate-ignore-db=mysql #指定不要同步的数据库,
    重启从数据库,设置登录主数据库的账号和密码等信息,然后启动slavemysql>change master to master_host='192.168.1.2',master_user='slave',master_password='slave', master_log_file='mysql-bin.000002',master_log_pos=120; mysql>start slave;
    查看从数据库的信息mysql>show slave status \G;如果出现: Slave_IO_Running: YesSlave_SQL_Running: Yes以上两项都为Yes,那说明没问题了
    测试主从复制是否有效果在主数据库中创建一个新的数据库,然后再切换到从数据库查看是否同样多出通名的数据库





配置旧数据库的主从复制

    如果一开始数据库的架构不是主从复制,并且运行一段时间后已经有数据存在,那配置的方式略有不同。
    编辑主数据库的my.ini文件,加上一下内容:binlog-do-db=landclash
    重启主数据库,然后在主数据库中锁定所有的表mysql>flush tables with read lock;
    显示主服务器的状态信息,并且找到File 和 Position 的值记录下来;mysql>show master status;       
    将主数据库data目录下需要做主从复制的数据库的同名目录拷贝到从数据库的data目录下
    编辑从数据库的my.ini文件,加上一下内容:replicate-do-db=landclash
    重启从数据库,因为主数据库在重新配置my.ini后,日志文件变成新的文件,所以需要再次设置登录主数据库的账号和密码等信息mysql>stop slave;mysql>change master to master_host='192.168.1.2',master_user='slave',master_password='slave', master_log_file='mysql-bin.000003',master_log_pos=120; mysql>start slave;
    再次输入查看从数据库状态的命令mysql>show slave status \G;
    完成上述配置后,回到主数据库,将表解锁mysql>unlock tables;之后在主数据库的修改就能同步到从数据库上了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-03-12
spy in the hansom, the loss of the new bro
相似回答