集群:
高可用;
负载均衡;
高性能
1、MySQL主库在事务提交时把数据变更(insert、delet、update)作为事件日志记录在二进制日志表(binlog)里面。
2、主库上有一个工作线程 binlog dump thread,把binlog的内容发送到从库的中继日志relay log中。
3、从库根据中继日志relay log重做数据变更操作,通过逻辑复制来达到主库和从库的数据一致性。
4、MySQL通过三个线程来完成主从库间的数据复制,其中binlog dump线程跑在主库上,I/O线程和SQL线程跑在从库上。拥有多个从库的主库会为每一个连接到主库的从库创建一个binlog dump线程。
主从复制;采用三台机器;
101 102 103
首先第一步关闭防火墙;
这里采用脚本加二进制包的方式进行安装;
文件太大就不上传了,有需要的通过私信找我获得;
首先主服务器应该具备生成二进制事物记录日志的功能;
打开主配置文件进行添加相关的语句;
vim /etc/my.cnf
以及指定不需要复制的库不记录日志;
binlog-ignore-db=test
重启服务后生效;
语句翻译:这些MySQL配置文件(通常是my.cnf或my.ini,取决于操作系统)中的语句用于配置MySQL服务器的二进制日志(binlog)相关的行为,以及复制(replication)和日志缓存的大小等。下面是对每个语句的解释和翻译:
-
server-id=11
-
-
解释:设置MySQL服务器的唯一ID为11。在MySQL复制配置中,每个服务器(无论是主服务器还是从服务器)都需要有一个唯一的server-id,以区分它们。
-
翻译:服务器ID设置为11。
-
-
log-bin=master-bin
-
-
解释:启用二进制日志,并将日志文件的前缀设置为master-bin。二进制日志记录了所有更改数据库内容的语句(如DML语句和DDL语句的某些部分),这对于数据复制和数据恢复至关重要。
-
翻译:启用二进制日志,并将日志文件名前缀设置为master-bin。
-
-
binlog-format=MIXED
-
-
解释:设置二进制日志的格式为MIXED。MySQL有三种二进制日志格式:STATEMENT(基于SQL语句的复制)、ROW(基于行的复制)和MIXED(混合模式,默认情况下使用STATEMENT,但在某些情况下自动切换到ROW以确保数据一致性)。
-
翻译:二进制日志格式设置为混合模式。
-
-
replicate-ignore-db=test
-
-
解释:在从服务器(slave)上配置时,此选项指定了不需要从主服务器(master)复制过来的数据库名称。在这个例子中,test数据库将被忽略,即它的更改不会被复制到从服务器上。
-
翻译:在从服务器复制时忽略test数据库。
-
-
binlog-cache-size=1M
-
-
解释:设置每个会话的二进制日志缓存大小为1MB。这个缓存用于存储当前会话中即将写入二进制日志的语句。如果语句的大小超过了缓存大小,缓存将自动增长,但达到max_binlog_cache_size时停止。
-
翻译:二进制日志缓存大小设置为1MB。
-
-
expire-logs-days=3
-
-
解释:设置二进制日志文件的过期天数。在这个例子中,MySQL将自动删除3天前的二进制日志文件。这有助于管理磁盘空间,因为随着时间的推移,这些日志文件可能会占用大量空间。
-
翻译:二进制日志文件过期天数设置为3天。
-
-
log-slave-updates=true
-
-
解释:在从服务器上,这个选项设置为true时,从服务器上的更新(例如,由复制过程引起的更新)也会被记录到从服务器的二进制日志中。这对于链式复制(即一个从服务器可以作为另一个从服务器的主服务器)特别有用。
-
翻译:在从服务器上启用更新日志记录。
-