MySQL Replication (MySQL的主从复制)

MySQL Replication(MySQL的主从复制)

主从数据库的工作模型: 工作要点:1、主服务器要开启二进制日志 2、从服务器要有一个用户账户,这个账户要有权限到主服务器上请求二进制事件,请求完后保存到本地。 3、从服务器上要有一个线程,从中继日志中不断的读事件,在本地replay。

Master/Slave
    Master: write/read
    Slaves: read

为什么?
    冗余:promte(提升为主),异地灾备
        人工
        工具程序:MHA
    负载均衡:转移一部分“读”请求;
    支援安全的备份操作;
    测试;
    ...

主/从架构:
    异步复制:
    半同步复制:
    一主多从;
    一从一主;
    级联复制;
    循环复制;
    双主复制;

    一从多主:
        每个主服务器提供不同的数据库;


配置:
    时间同步;
    复制的开始位置:
        从0开始;
        从备份中恢复到从节点后启动的复制;
    主从服务器mysqld程序版本不一致?

    主服务器:
        配置文件my.cnf
        server_id=#
        log_bin=log-bin

        启动服务:
        mysql> GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'USERNAME'@'HOST' IDENTIFIED BY 'YOUR_PASSWORD';
        mysql> FLUSH PRIVILEGES;

    从服务器:
        配置文件my.cnf
        server_id=#
        relay_log=relay-log 

        启动服务:
        mysql> CHANGE MASTER TO MASTER_HOST='HOST',MASTER_USER='USERNAME',MASTER_PASSWORD='YOUR_PASSWORD',MASTER_LOG_FILE='BINLOG',MASTER_LOG_POS=#;
        mysql> START SLAVE [IO_THREAD|SQL_THREAD];

        mysql> SHOW SLAVE STATUS;

    课外作业:基于SSL的复制的实现;

配置主从数据库实例

1、加入使用centos7(2)和centos7(3)这两台虚拟机当做节点,(2)做主,(3)做从。第一步先同步时间

两台主机分别执行ntpdate 10.1.0.1

MySQL  Replication  (MySQL的主从复制)

配置/etc/chrony.conf文件

MySQL  Replication  (MySQL的主从复制)

时间节点已经同步

2、在节点1(centos7(2)),配置/etc/my.cnf

log-bin=master-log 启动二进制日志 server-id=1 设置id

MySQL  Replication  (MySQL的主从复制)

启动mysql服务

systemctl start mariadb.service

验证二进制日志文件

MySQL  Replication  (MySQL的主从复制)

主节点连入数据库,执行show master status,查看是从哪个文件,哪个位置开始。即便从0开始,待会复制时也要指明从哪个文件哪个位置开始。

MySQL  Replication  (MySQL的主从复制)

3、在节点2(centos7(3)),配置从节点,vim /etc/my.cnf

MySQL  Replication  (MySQL的主从复制)

启动mysql服务

systemctl start mariadb.service

查看日志文件

MySQL  Replication  (MySQL的主从复制)

4、主服务器上,授权一个拥有连接复制权限的账号

MySQL  Replication  (MySQL的主从复制)

然后FLUSH PRIVILEGES

主从上面只需要业务同步就可以,不需要授权同步

MySQL  Replication  (MySQL的主从复制)

这时,主服务器授权已经完成,从服务器就可以连上了

MySQL  Replication  (MySQL的主从复制)

查看从服务器使用与否

show slave status

这里还没有启动复制功能,启动复制功能start slave

MySQL  Replication  (MySQL的主从复制)

MySQL  Replication  (MySQL的主从复制)

查看,已经复制过来了

MySQL  Replication  (MySQL的主从复制)

在主节点上做一些创建类的操作,创建一个mydb2数据库,通常从节点上可以查看到这个数据库

MySQL  Replication  (MySQL的主从复制)

MySQL  Replication  (MySQL的主从复制)

注意:复制是单向的,从服务器上创建数据库,主服务器无法显示

让从服务器只能读,不能写,设置成只读

MySQL  Replication  (MySQL的主从复制)

再也不释放锁,谁也写不进来

MySQL  Replication  (MySQL的主从复制)

这样的话从线程也写不了了。所有只能寄托从服务器不要误操作。

原创文章,作者:15152188070,如若转载,请注明出处:http://www.178linux.com/60261

(0)
1515218807015152188070
上一篇 2016-11-21 15:55
下一篇 2016-11-21 19:33

相关推荐

  • sed命令实战

    1、删除/etc/grub2.conf文件中所有以空白开头的行行首的空白字符  [root@centos7 ~]# sed -r 's#^[[:space:]]+##g' /etc/grub2.cfg # # DO NOT EDIT THI…

    Linux干货 2016-08-15
  • Linux的主要发行版及区别

    Linux的主要发行版介绍 主流的发行版 Linux至上世纪90年代基于Unix而诞生,至今其发行版有几百种之多,但其主流的发行版有三个系列。 Debian系 Ubuntu属于Debinan系。 Redhat系CentOS属于Redhat系。Slackware系SUSE Linux即属于Slackware系。 主要区别 软件包管…

    Linux干货 2016-10-29
  • N26-第五周作业-邢岩

    马哥门徒-N26-邢岩    我要继续今天的博客,《一万小时天才理论》里提到了髓鞘质,我是不是正在慢慢的给自己包裹一层髓鞘质呢?如果还没有,那么继续吧。    第一题:显示当前系统上root、fedora或user1用户的默认shell。      ~]# grep -E &#8…

    2017-02-24
  • nl命令使用解析

    nl    命令功用: nl – number lines of files 显示文件内容,并列出行号   命令样式: nl [OPTION]… [FILE]…   命令选项: -b:正文行号,参数为样式style -n:行号格式,参数为格式format -w:设定行号所占位数,参数为…

    Linux干货 2016-10-20
  • 软件包管理

    软件运行与编译过程:程序源代码——预处理——-编译——-汇编——-链接 静态编译:.a 动态编译:.so 二进制程序的组成:二进制文件、库文件、配置文件、帮助文件。 包的命名:1、源代码:name -VERSION.tar.gz或bz2或xz   &nb…

    Linux干货 2017-04-23
  • 做有高薪有逼格的运维工程师,不会Linux是没有前途的!

    作为互联网的幕后英雄,运维工程师长期隐匿在大众认知范围之外,关于运维的讨论仍旧是一片无人涉足的荒漠。在某知名行业研究调查结果中,非互联网从业者对于运维相关问题的回复有三个高频词汇是:不知道、没听过、网管。当调查人员告诉他们科幻电影中展示黑客高超技巧时的命令行界面正是大多数运维工程师每日工作环境时,他们发出极其一致的惊叹。 相对于普罗大众的一无所知,技术圈对运…

    2017-09-08