1. 环境:
虚拟机中2台centos6服务器
master服务器IP:192.168.2.66
slave 服务器IP:192.168.2.67- 分别安装MySQL5.7参考linux 安装mysql5.7 数据库
2.mysql 日志简介:
1.
error log
错误日志
2.general query log
普通查询日志
3.slow query log
慢查询日志
4.binary log
二进制日志
3.MySQL主从简单介绍:
- 主从优点:
- 多个数据库节点对比一个数据库,提高性能,提升负载
- 安全性,多个节点提供冗余,提供数据安全
- 读写分离
- 主从实现原理:
主表数据更新,从表读取主表日志文件binlog
文件,同步更新从表数据
不建议从节点过多- 主从应用场景:
- 数据库备份
- 读写分离
4.MySQL主从搭建
主表
- master 节点创建登陆MySQL用户:
mysql> create user 'repl'@'192.168.2.%' identified by 'repl1234'
- 给创建用户赋予权限:
mysql> grant replication slave on *.* to 'repl'@'192.168.2.%' identified by 'repl1234'
- binlog日志:
作用: 增量备份、主从- mysql 5.7默认不开启binlog日志:
查看:mysq> show variables like '%log_bin%'
开启:# vim /etc/my.cnf
server-id=1,本台机器上唯一不重复,
log-bin=/var/lib/mysql/mysql-bin,binlog日志文件位置- 重启MySQL:
# service mysqld restart
查看是否开启:
a.ls /var/lib/mysql/
mysql-bin.000001:日志文件的数据库文件
mysql-bin.index :日志文件的索引文件
b.mysql> show variables like '%log_bin%';
查看binlog日志文件:# mysqlbinlog mysql-bin.000001
或mysql> show binlog events
或mysql> 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
添加如下内容
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;
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。主从搭建完毕