mysql复制功能——“master-slave”结构

一、配置主服务器

  1.my.ini中添加内容

  

  必须写在[mysqld]下

  另外只要出现了binlog-do-db,下面的binlog-ignore-db均不起作用。

  2.创建“复制权限”的账号

      创建账号

   

   

         给创建的账号授予“待复制数据库”上所有的操作权限

   

         查看所有用户

SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;

   

   查看用户权限

   

  3.重启mysql服务

二、配置从服务器

  1.my.ini中添加内容

    

   必须写在[mysqld]下

    replicate-do-table必须指明数据库名,否则mysql服务无法启动.eg:wiscom.video

   

   log-bin和log_bin版本不同可能会略有区别

   注:从库my.ini的配置中,Mysql5.5版本以上不再支持master的用法,比如5.1

    中可用的(master-user = repl;master-password = repl;master-port = 3307),

    如果在mysql5.5版本以上中使用该语法会导致,mysql服务无法启动。

  2.重启mysql服务器

    3.开启从库复制功能

       a)关闭从库复制功能

stop slave;

  

   b)设置主库连接串

change master to 
master_host="10.0.0.10", 
master_port=3306, 
master_user="slave1", 
master_password="feng"
;

  

      注:出现警告是没关系的,只是密码是明文等提示。

            此处还可指明“主库”二进制文件名和位置

    eg:

      查看主库信息可用以下命令完成:

     

   c)打开从库复制功能

start slave;

   

   d)查看从库状态

   

三、测试

      1.连接到主库上,插入一行数据

  

  

  2.在从库上执行查询

  

  

四、说明

  1.版本问题

   从库的版本>=主库的版本

        本实验中:主库

                     

        从库

        

   2.第一次配置从库时,从库中不应该存在“待复制的数据库名”

    第一次start slave时,会在从库上创建该数据库,如果已经存在会出现无法创建数据库的错误

    

   此时,从库上的SQL线程无法启动

    

 详细参考:http://www.cnblogs.com/hustcat/archive/2009/12/19/1627525.html

posted @ 2013-05-21 18:00  edisonfeng  阅读(575)  评论(0编辑  收藏  举报