• (转)mysql的单向复制


    mysql的单向复制操作很简单:大概只需要二十分钟看完这篇文章就能搞定了。http://11837782.blog.51cto.com/11827782/1885967

    为了提高主从服务器的健壮性,我们选择了mysql单向复制的方法,当主服务器宕机时,从服务器依旧可以接管,并且保持数据的相对完整性,而从服务器备份的时候不会干扰到主服务器的工作,可以说是一个强大的功能。

    原理:将主服务器内数据更新封装为二进制文件的形式,发送到从服务器内更新,从服务器连接主服务器,主服务器也能得到它上次更新的位置。所有更新必须在主服务器上进行。

    环境:rhel 6.5

    主机:192.168.122.102(简称server2~

    次机:192.168.122.103 ( 简称server3~ )

    首先在两台主机上安装mysql 环境(也可以选择多台从服务器),分别执行 

    [root@server2 ~]# yum install mysqlmysql-server -y

    [root@server3 ~]# yum install mysqlmysql-server -y

    安装完毕后开始启动 server2 上的mysql,执行  

    [root@server2 ~]# /etc/init.d/mysqld start

    wKioL1hfjDSAv6GCAAAjbPGteJ0370.png-wh_50

    如上图,可以看到在开启mysql的时候出现了这种错误,这时需要删除以前的socker便可:执行 

    rm /var/lib/mysql/mysql.sock

    wKiom1hfjFLBm0PkAAA2QCrgG2M778.png-wh_50

    可以看到这次启动就成功了然后在server2直接输入

    mysql> GRANT REPLICATIONSLAVE,RELOAD,SUPER ON *.* TO test@'192.168.122.103' IDENTIFIED BY 'adol';(建立主机的同步账号)

    mysql> Flush privileges;

    从而允许 server3来作为slave来登陆server2,继续在server2上更改/etc/my.cnf 文件

    [root@server2 ~]# vim /etc/my.cnf

    在[mysqld]内添加下面四行内容

     

    log-bin=mysql-bin(启动二进制日志系统)

    binlog-do-db=adol(二进制需要同步的数据库名)

    server-id=1(必须为1到232–1之间的一个正整数值,而且不可重复)

    binlog-ignore-db=mysql(避免同步 mysql 用户配置,以免不必要的麻烦)

    wKiom1hfjKyxcOozAAB7qnXvTbY657.png-wh_50

    :wq 退出保存

    执行 /etc/init.d/mysql restart 更新配置

    wKioL1hfjMTgr8gpAAAexWSx_gs177.png-wh_50

    在server3上修改 /etc/my.cnf 文件

    [root@server3 ~]# vim /etc/my.cnf

    添加下列行到【mysqld】内

     

    server-id=2 (不能与server2一样,这是身份标志位,联想身份证号)

    master-host=192.168.122.102(主机server2的ip

    master-user=test (主机可用的用户名称)

    master-password=adol(主机可用名对应的密码)

    master-port=3306(3306是默认的mysql端口)

    master-connect-retry=60(断开重新连接时间,单位是秒)

    replicate-ignore-db=mysql(忽略避免同步的数据库MYSQL

    replicate-do-db=adol(需要同步的数据库)

    wKioL1hfjNnypudOAACfpu9fiv4146.png-wh_50

     [root@server3 ~]# /etc/init.d/mysqld restart (重启mysql)

    在server2的mysql内执行

    mysql> show master status;

    wKiom1hfjOaCqgmpAAAVLQPISAY725.png-wh_50

    可得出这样的结果,可获取它的File和position值。

    在server3内进入数据库更新配置,如下

    mysql> stop slave;

    mysql> change master to master  changemaster_host='192.168.122.102',master_user='test',master_password='adol',master_log_file='mysql-bin.000002',master_log_pos=106;

    mysql > start slave;

    被颜色标记的就是我们从master 那里获得的数据。

    Server3执行  mysql > show slave statusG

    wKioL1hfjPXyXDZUAACQpP0B5lM455.png-wh_50

    可以得到          Slave_IO_Running: Yes

                   Slave_SQL_Running: Yes

    当他们的值为YES时,说明slave 就可以从master同步复制了。

    检测:

    我的Server2和server3内数据都如下

    mysql> show databases;

    +--------------------+

    | Database           |

    +--------------------+

    | information_schema |

    | adol               |

    | adold              |

    | marjur             |

    | mysql              |

    | ooo                |

    +--------------------+

    6 rows in set (0.09 sec)

    mysql> use adol;

    Database changed

    mysql> show tables;

    +----------------+

    | Tables_in_adol |

    +----------------+

    | a              |

    | k              |

    +----------------+

    2 rows in set (0.00 sec)

    现在在server2内添加表

    mysql> create table dd(name varchar(20));

    Query OK, 0 rows affected (0.06 sec)

    在server3内进入数据库adol内执行

    mysql> show tables;

    wKiom1hfjQ6gD9utAAAbm1JubUM143.png-wh_50

     

    可以看到,server3多出了一个为dd的表,说明单向复制是成功的。

    (注意:默认复制只能复制adol数据库内的内容,adol外的内容变动不会对 

    server3 产生影响 。)

  • 相关阅读:
    asp网站中使用百度ueditor教程
    URL特殊字符需转义
    织梦DEDE文章列表前面自动加递增数字标签
    dede修改templets模板文件夹后,出现“无法在这个位置找到: ”错误的解决办法
    Mysql命令大全
    成功,来自有梦想,肯坚持
    飞天侠模板的相关修改教程
    bios自检时间长,显示0075错误
    电脑桌面假死解决方法
    没有哪个人是随随便便成功的
  • 原文地址:https://www.cnblogs.com/guazi/p/6815165.html
Copyright © 2020-2023  润新知