• mysql主从复制-异步复制


    一、创建复制账号:
         在Master的数据库中建立一个备份帐户:每个Slave使用标准的MySQL用户名和密码连接master。
         进行复制操作的用户会授予REPLICATION SLAVE权限。用户名的密码都会存储在文本文件master.info中
         mysql > GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.* TO 'repl'@'%' IDENTIFIED BY 'repl' WITH GRANT OPTION
         建立一个帐户repl,并且只能允许从192.168.1.113这个地址上来登陆,密码是repl。
    二、拷贝数据:
         在Master上备份数据库dg :
         #mysqldump -u root -p dg > dg.sql
         将备份好的dg.sql文件拷贝到slave的根目录下:
         rsync -va dg.sql 192.168.1.113:/  
         在Slave上登录mysql恢复数据库dg
         mysql>create database dg;
         mysql>use dg;
         mysql>source /dg.sql;
         拷贝完成后,禁止在Master和slave服务器中进行写操作,使得两数据库中的数据一定要相同!
         在Master和Slave上都要锁定表
         mysql>flush tables with read lock;
    三、配置Master:
         接下来对master进行配置,包括打开二进制日志,指定唯一的servr ID。
         vim /etc/mysql/my.cnf
         ubuntu装的mysql貌似没有打开bin_log,首先要到my.cnf里打开log_bin选项,即去掉log_bin的注释
         skip-external-locking 和 bind-address 选项要注释掉,不然不能远程连接数据库
     
         server-id = 1   ---Master的ID值(标示)
         log_bin=mysql-bin  ---二进制变更日值
         binlog_do_db=dg    ---需要同步的数据库
         binlog_ignore_db=mysql  ---不需要同步的数据库
     
         重启Master,运行show master status;
         #service mysql restart
         #mysql -u root -p 123
         mysql>show master status;
         获取master_log_file:mysql-bin.000001
         master_log_pos 120
    四、配置Slave:
         此项与配置Master类似,/etc/mysql/my.cnf
         去掉log_bin的注释,将skip-external-locking 和 bind-address 选项要注释掉
     
         server-id = 2
         log_bin = mysql-bin
         relay_log = mysql-relay-bin
         log_slave_updates = 1
         read_only =1
     
         server_id是必须的,而且唯一。slave没有必要开启二进制日志,但是在一些情况下,必须设置,例如,如果slave为其它slave的               master,必须设置bin_log。在这里,我们开启了二进制日志,而且显示的命名(默认名称为hostname,但是,如果hostname改变则会     出现问题)。
         relay_log配置中继日志,log_slave_updates表示slave将复制事件写进自己的二进制日志(后面会看到它的用处)。
         有些人开启了slave的二进制日志,却没有设置log_slave_updates,然后查看slave的数据是否改变,这是一种错误的配置。所以,尽     量使用read_only,它防止改变数据(除了特殊的线程)。但是,read_only并是很实用,特别是那些需要在slave上创建表的应用。
     
    五、启动Slave:
         在Slave上:
         mysql>change master to
            ->master_host='192.168.1.112',
            ->master_user='repl',
            ->master_password='repl',
            ->master_log_file='mysql-bin.000001',
            ->master_log_pos=0;
         如果mysql的接口修改过,则换成现在的接口master_port=3303,
         mysql>show slave statusG;
         Slave_IO_State, Slave_IO_Running, 和Slave_SQL_Running是No
         表明slave还没有开始复制过程。日志的位置为4而不是0,这是因为0只是日志文件的开始位置,并不是日志位置。实际上,MySQL知道的第一个事件的位置是4。
  • 相关阅读:
    POJ 1306.Combinations
    HDU 5640.King's Cake
    HDU 1072.Nightmare
    HDU 2717.Catch That Cow
    HDU 1372.Knight Moves
    HDU 1548.A strange lift
    AOJ 802.运输宝物
    AOJ 794.西瓜理发记(二)
    AOJ 793.西瓜理发记(一)
    AOJ 789.买酒
  • 原文地址:https://www.cnblogs.com/lizhi221/p/6814267.html
Copyright © 2020-2023  润新知