zoukankan      html  css  js  c++  java
  • mysql 主从复制

    首先是搭建环境,我是在一个虚拟机上测试用的

    1>首先安装mysql
    rpm -ivh MySQL-server-5.5.38-1.rhel5.i386.rpm
    rpm -ivh MySQL-client-5.5.38-1.rhel5.i386.rpm

    如果报错说少prel就安装prel包
    yum -y install prel

    2>复制配置文件 因为如果是rpm安装他是不会自动复制这个文件的
    cp /usr/share/mysql/my-large.cnf  /etc/my.cnf

    3>修改 my.cnf 配置文件
    vi /etc/my.cnf
    找到log-bin
    :/log-bin=mysql-bin
    下面几行就是 server-id =1  主服务器不用动 在他下面添加一行
    设置共享数据库(添加这个就行)
    binlog-do-db=gao
    设置binlog不记录数据库,多个写多条(不用写)
    binlog-ignore-db=mysql
    设置binlog保存的天数(不用写)
    expire-logs-days=10

    修改完成后重启mysql
    service mysql restart

    如果出现报错ERROR! MySQL server PID file could not be found!
    执行 rm -rf /var/lib/mysq/mysql-bin.index

    从服务器和他的配置是一样 就是server-id不同

    接下来就是一个很绕的环节,主服务器从服务器的操作,我就分别用不同颜色标出来了

    还有就是如果允许最好把防火墙关了,别问为什么


    4>在主服务器,进入到mysql,创建gao数据库,
    随便建一张表,随便插入一些数据
    mysql> create database gao charset utf8;
    mysql> use gao;
    mysql> create table test(id int,name char(20));
    mysql> insert into test set id=1,name=123;

    在在主服务器添加从服务器的账号 *.*代表所有数据库的所有表 ip是从服务器的ip 密码是从的密码
    grant replication slave on *.* to 'slave'@'192.168.1.104' identified by '123123';

    刷新授权表,让账号立刻生效
    flush privileges;

    查看用户是否已经添加
    select user,host from mysql.user;

    锁定主服务器的所有的表
    flush tables with read lock;

    先退出mysql,然后导出sql  >这个箭头指向就是将gao数据库导出成gao.sql到家目录当中
    mysqldump -uroot -p gao>gao.sql

    从主服务器把sql文件复制到从服务器的家目录 :~ 就是文件放到的地址
    如果是 :/www 就是放到根目录www文件夹内 期间要输入从服务器的密码
    scp gao.sql root@192.168.1.104:~

    7>打开从服务器,编辑/etc/my.cnf,把server-id改成2
    重启mysql,进入到mysql,
    建立gao库,
    mysql> create database gao charset utf8;

    退出mysql,执行导入操作 期间要输入mysql的密码
    mysql -uroot -p gao<gao.sql

    8>在主服务器里面的mysql,打以下命令,查看bin-log状态
    show master status;
    查看从服务器状态
    show slave status;

    下面是示例图



    9>在从服务器的mysql 输入 主机ip  master_user是你之前在主机添加从服务账号时的名字,通常就slave,master_password也是按照主机添加从服务账号时的密码来,后面两个要输入的就是刚才在主机mysql中show master status显示的,每个mysql都会不一样
    mysql> change master to master_host='192.168.1.103',master_user='slave',master_password='123123',master_log_file='mysql-bin.000003',master_log_pos=728;

    从服务器开启同步
    mysql> start slave


    把主服务器的表解锁,在主服务器的mysql里面操作
    mysql> unlock tables;

    然后在主服务器插入几条数据监测一下

    从服务器中查询状态
    mysql> show slave statusG

    主服务器中查看状态
    mysql> show processlistG


    如果不成功就从主服务器添加从属账户开始再来一遍

  • 相关阅读:
    Linux CentOS7 下设置tomcat 开机自启动
    MYSQL批量导入数据报:[Err] 2006
    HTML页面仿WORD样式
    /usr/bin/ld: cannot find -lxxx 问题
    Linux 重命名
    Linux mail
    cenos 7 mysql
    linux 解压与压缩
    python 字符串替换
    cpu相关信息(进程、线程、核...)
  • 原文地址:https://www.cnblogs.com/gaofeifiy/p/5075542.html
Copyright © 2011-2022 走看看