实战mysql集群搭建(二)-- 实现mysql数据库主从复制

来源:互联网 发布:编程语言排行榜2017 7 编辑:程序博客网 时间:2024/06/08 13:44

       继上篇文章《实战mysql集群搭建(一)--centos7下二进制安装mysql-5.6》之后,本文介绍的是主数据库服务器通过日志文件的形式,将数据备份到另一台服务器,这样实现数据库主从复制,可实现数据的安全备份。


       针对主库操作:

 

       1. 开启master上的log-bin功能:

 
        # vi /etc/my.cnf 

        

        添加如下内容:
        log_bin=mysql-bin
        server_id =1
 

        2、重启mysql
     

        # /etc/init.d/mysqld restart
  

       3、登陆mysql在master服务器上建立账户,并授权slave功能

       #mysql –uroot –p
       mysql> grant replication slave on *.* to 'mysql'@'%' identified by 'mysql';
       mysql> flush priviliges;
       mysql> flush tables with read lock;


      当然,如果在此操作之前,主从数据库都同时存在数据,则可以将数据库进行整体备份,备份过程如下:

   

       1、 将mysqldump命令添加到/usr/bin中


       ln -s /application/mysql/bin/mysqldump /usr/bin/


       2、使用mysqldump命令对master服务器数据库备份:
       

       # mysqldump -uroot -p -A  --master-data=1 > /tmp/master_16-09-12.sql


       3、备份完毕,恢复写操作:


       # mysql> unlock tables;


       对从库操作


       1、停止slave同步操作

       mysql> stop slave;

       2、修改从库的配置文件

       # vi /etc/my.cnf
       log_bin=mysql-bin
       server_id = 2

       3、将master_16-09-12.sql文件导入从库中

       # mysql -uroot -p < master_16-09-12.sql

       4、配置从服务器slave

       mysql> change master to 
       master_host="主服务器IP",
       master_user="mysql",
       master_password="mysql";


      5、启动从服务器slave
     

      mysql> start slave;
      mysql>quit;
      #/etc/init.d/mysqld restart


      6、检查slave服务器状态

      mysql> show slave status\G;

      出现如下内容则配置成功:

                               

      本次操作是通过虚拟机克隆的方式实现,出现了一个错误:

         master and slave have equal MySQL server UUIDs 解决方法

   

      这是因为在服务器拷贝过程中将数据库的整个data目录同时也拷贝过来了,这样里面就存在了auto.cnf文件,该文件存储着数据库uuid,每个数据库的uuid应该是不一样的,修改该uuid即可。


0 0
原创粉丝点击