MYSQL主从复制配置步骤

来源:互联网 发布:淘宝订单不付钱 编辑:程序博客网 时间:2024/05/16 02:55
情况1:MASTER和salve都是新库的情况
1.1 master的my.CNF文件
vi /etc/my.cnf
[mysqld]
  log-bin = mysql-bin
  server-id=1111
修改之后保存,并重启服务


1.2 sal replive的my.CNF文件
vi /etc/my.cnf
[mysqld]
  log-bin = mysql-bin
  server-id=2222
修改之后保存,并重启服务


保证slave和master的server的ID不一样


1.3创建用户用于传输副本
这个用户可以了解主备机器,需要有replication的权限
用mysql客服端连接到master主节点,创建用户repl并授予权限
MySQL>create user repl identified by '123456';
mysql>grant replication slave on *.* to repl;


1.4获取master上binary log的坐标(检查点)
选中这个坐标,相当于检查点,在这个检查点之后的数据变化都会写到binary log文件里面,
而这个检查点之前的数据不会写到bin log文件里面。会被忽略。


注意:在获取检查点的必须要停止所有在执行的SQL语句,并将缓存写人到磁盘
    1 :打开master节点上,执行flush tables with read lock 语句来将所有的表缓存写到磁盘并阻塞随后的
        写人操作
    MySQL>flush tables with  read lock;
    2: 执行show master status 语句来确定当前的bin log文件名和检查点的位置
    MySQL> show master status;
    并记录相关数据,mysql-bin.00011112  position=154等等信息
    3:得到bin log的检查点后,可以将表解锁
    MySQL>unlock tables;
1.5 在备节点slave中配置master的信息
    连接到slave,执行change master to 命令来告诉slave如何进行连接到master,并找到bin log文件,这里假设主节点的
    IP为10.63.62.175,。
    MySQL> change master to master_host = '10.63.62.175',master_user = 'repl',master_password ='123456',
             master_log_file ='mysql-bin.000012', master_log_pos=154;




1.6开启SLAVE线程(备)
   配置好change master to 后,replication的任务还没有开始远程连接。需要在备机器slave中执行start slave来开启。
   MySQL》start slave;
   用如下的命令查看replication的状态
   MySQL》show slave status \G;
   如果在主库中创建一个新的数据库,然后在备库中看是否存在,如果存在,说明主备搭建好了。






-----------------------------------------------------------------------------------
第二中情况是master库已经存在数据的情况
如果master库中存在数据,就需要mysqldump命令创建一份快照,并将快照导入到slave库中。
1.1 master的my.CNF文件
vi /etc/my.cnf
[mysqld]
  log-bin = mysql-bin
  server-id=1111
修改之后保存,并重启服务


1.2 sal replive的my.CNF文件
vi /etc/my.cnf
[mysqld]
  log-bin = mysql-bin
  server-id=2222
修改之后保存,并重启服务


保证slave和master的server的ID不一样


1.3创建用户用于传输副本
这个用户可以了解主备机器,需要有replication的权限
用mysql客服端连接到master主节点,创建用户repl并授予权限
MySQL>create user repl identified by '123456';
mysql>grant replication slave on *.* to repl;


1.4获取master上binary log的坐标(检查点)
选中这个坐标,相当于检查点,在这个检查点之后的数据变化都会写到binary log文件里面,
而这个检查点之前的数据不会写到bin log文件里面。会被忽略。


注意:在获取检查点的必须要停止所有在执行的SQL语句,并将缓存写人到磁盘
    1 :打开master节点上,执行flush tables with read lock 语句来将所有的表缓存写到磁盘并阻塞随后的
        写人操作
    MySQL>flush tables with  read lock;
    2: 执行show master status 语句来确定当前的bin log文件名和检查点的位置
    MySQL> show master status;
    并记录相关数据,mysql-bin.00011112  position=154等等信息
    3:用MySQLdump创建MySQL的备份
       shell>mysqldump  --all-databases  --lock-all-tables  > dbdump.db
    4:得到bin log的检查点后,可以将表解锁
    MySQL>unlock tables;


2.1将创建的备份导入到slave备库中
   2.1启动slave库的MySQL服务,添加--skip-slave-start参数来确保不会启动replication同步
   SHELL>mysql-safe  --skip-slave-start &;
   2.2导入dump文件
   shell> mysql < fulldb.dump
   2.3去掉--skip-slave-start参数并重启slave服务
   mysql>shutdown;
   shell> mysqld-safe  &;
   2.4 在slave中配置master的信息
     MySQL> change master to master_host = '10.63.62.175',master_user = 'repl',master_password ='123456',
             master_log_file ='mysql-bin.000012', master_log_pos=154;
   2.5 开启SLAVE线程(备)
   配置好change master to 后,replication的任务还没有开始远程连接。需要在备机器slave中执行start slave来开启。
   MySQL》start slave;
   用如下的命令查看replication的状态
   MySQL》show slave status \G;
   如果在主库中创建一个新的数据库,然后在备库中看是否存在,如果存在,说明主备搭建好了。















































原创粉丝点击