MySQL集群——主从

1. 环境:

  1. 虚拟机中2台centos6服务器


    image.png

    master服务器IP:192.168.2.66
    slave 服务器IP:192.168.2.67

  2. 分别安装MySQL5.7参考linux 安装mysql5.7 数据库

2.mysql 日志简介:

1.error log错误日志
2.general query log普通查询日志
3.slow query log慢查询日志
4.binary log 二进制日志

3.MySQL主从简单介绍:

  1. 主从优点:
  • 多个数据库节点对比一个数据库,提高性能,提升负载
  • 安全性,多个节点提供冗余,提供数据安全
  • 读写分离
  1. 主从实现原理:
    主表数据更新,从表读取主表日志文件binlog文件,同步更新从表数据
    不建议从节点过多
  2. 主从应用场景:
  • 数据库备份
  • 读写分离

4.MySQL主从搭建

主表

  1. master 节点创建登陆MySQL用户:
    mysql> create user 'repl'@'192.168.2.%' identified by 'repl1234'
    image.png
  2. 给创建用户赋予权限:
    mysql> grant replication slave on *.* to 'repl'@'192.168.2.%' identified by 'repl1234'
  3. binlog日志:
    作用: 增量备份、主从
  4. mysql 5.7默认不开启binlog日志:
    查看:mysq> show variables like '%log_bin%'
    开启:# vim /etc/my.cnf
    开启binlog

    server-id=1,本台机器上唯一不重复,
    log-bin=/var/lib/mysql/mysql-bin,binlog日志文件位置
  5. 重启MySQL:
    # service mysqld restart
    查看是否开启:
    a.ls /var/lib/mysql/
    image.png

    mysql-bin.000001:日志文件的数据库文件
    mysql-bin.index :日志文件的索引文件
    b.mysql> show variables like '%log_bin%';
    image.png

    查看binlog日志文件:# mysqlbinlog mysql-bin.000001mysql> show binlog eventsmysql> show binlog events in "文件名"
    每次重启服务器会调用flush logs创建一个新的bin-log日志文件。
  • 查看当前日志的状态: mysql> show master status;
  • 查看纪录有那些日志文件:mysql> show master logs;
  • 清空所有日志文件:mysql> reset master;

从表
1.MySQL配置文件:
# vim /etc/my.cnf添加如下内容

image.png

relay-log: 从节点同步主节点binlog日志到本地的文件名
2.重启mysql :# service mysqld restart
3.配置主节点信息:
mysql> change master to master_host='192.168.2.66',master_port=3306,master_user='repl',master_password='repl1234',master_log_file='mysql-bin.000001',master_log_pos=0;
4.启动从节点:mysql> start slave;
5.查看从节点状态:show slave status\G;
image.png

Slave_IO_Running: Yes
Slave_SQL_Running: Yes
这样,主从就配置好了,注意:如果连接不起,1.先看一下防火墙,关闭防火墙。2.vim /var/lib/mysql/auto.cnf 修改uuid,随便改一个字符。
连接失败:show slave status\G 时 ,下面有错误提示。
关闭从表:myisql> stop slave;
测试下,在master 中创建一个表,插入数据,在从表中查看,是否存在
主表添加数据

从表查看数据

ok。主从搭建完毕

你可能感兴趣的:(MySQL集群——主从)