Mysql数据库设置主从库自动同步数据

设置主数据库


第一步:修改主数据库my.ini配置:

        Server-id = 1  这是数据库ID,此ID是唯一的,ID值不能重复,否则会同步出错;

        log-bin = mysql-bin 二进制日志文件,此项为必填项,否则不能同步数据;如果不取名字的话,那么就会以计算机的名字加编号来命名二进制文件;

        binlog-do-db = testcreate  需要同步的数据库,如果还需要同步另外的数据库,那么继续逐条添加,如果不写,那么默认同步所有的数据库;

        binlog-ignore-db = mysql 不需要同步的数据库;

        修改完成之后重启mysql服务。

第二步:添加主数据库用于同步的账号:

        给主数据库授权一个可以进行复制的用户,执行命令:grant replication slave on *.* to 'slave'@'%' identified by '***';

第三步:显示主数据库的同步信息:

设置从数据库


第一步:修改从据库my.ini配置:

        同上;

第二步:在mysql下执行stop slave;命令,停止slave服务;

        mysql> change master to

            -> master_host='192.168.1.189',

            -> master_user='slave',

            -> master_password='***',

            -> master_log_file='mysql-bin000014.000001',

            -> master_log_pos=107;

        注意:这里的master_log_file,master_log_pos的值要和master的值一致。否则会无法同步。

        执行start slave;命令,启动服务。

第三步:验证是否同步:

        执行show slave status\G;

        得到如下结果则说明同步成功。

        也可以在主数据库被同步的表中做crud操作,看从数据库中的数据有无变化。

报错说明


        主从同步报错Fatal error: The slave I/O thread stops because master and slave have equal MySQL server。

        解决:找到data文件夹下的auto.cnf文件,修改里面的uuid值,保证各个db的uuid不一样,重启db即可。

如有侵权请联系本人删除哦~~~

你可能感兴趣的:(Mysql数据库设置主从库自动同步数据)