SQL是Structured Query Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。SQL功能强大、简单易学、使用方便,已经成为了数据库操作的基础,并且现在几乎所有的数据库均支持SQL。 本文主要介绍了MySQL5.7.18主从复制搭建(一主一从)教程详解,需要的朋友可以参考下,希望能帮助到大家。MySQL使用3个线程来执行复制功能(其中1个在主服务器上,另两个在从服务器上,下面我们来详细介绍本文内容。一、复制原理 主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送到从服务器的更新.当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生的任何更新,然后封锁并等待主服务器通知新的更新。 MySQL使用3个线程来执行复制功能(其中1个在主服务器上,另两个在从服务器上。当发出START SLAVE时,从服务器创建一个I/O线程,以连接主服务器并让它发送记录在其二进制日志中的语句。主服务器创建一个线程将二进制日志中的内容发送到从服务器。 该线程为主服务器上的Binlog Dump线程。从服务器I/O线程读取主服务器Binlog Dump线程发送的内容并将该数据拷贝到从服务器数据目录中的本地文件中,即中继日志。第3个线程是SQL线程,是从服务器创建用于读取中继日志并执行日志中包含的更新。 二、服务器准备 操作系统版本:Red Hat Enterprise Linux Server release 6.7 (Santiago) Master(主) ip:172.16.115.245 主机名称:mysql2 server_id:245 Slave(从) ip:172.16.115.247 主机名称:mysql3 server_id:247 主从服务器上都已安装MySQL5.7.18 三、主从复制实施细节 1.主服务器上为服务器设置一个连接账户并授予REPLICATION SLAVE权限。 GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'repl@20170509'; 2.修改master配置文件my.cnf server-id = 245
log_bin = /data/mysqllog/3306/bin_log/binlog 这两个值必须设置,设置好之后,重启MySQL。 3.备份master上一份完整的数据 mysqldump -uroot -p'密码' --master-data=2 --single-transaction -R --triggers -A > /backup/all.sql 说明: --master-data=2代表备份时刻记录master的Binlog位置和Position --single-transaction意思是获取一致性快照 -R意思是备份存储过程和函数 --triggres的意思是备份触发器 -A代表备份所有的库 4.查看主库备份时的binlog名称和位置 SHOW MASTER STATUS;
mysql> SHOW MASTER STATUS;
+---------------+----------+--------------+------------------+-------------------+
|