配置示例

mysql8配置主从同步:主库my.cnf配置示例

[mysqld]
# 服务器唯一id,默认值1
server-id=1
# 设置日志格式,默认值ROW
binlog_format=STATEMENT
# 二进制日志名,默认binlog
# log-bin=binlog
# 设置需要复制的数据库,默认复制全部数据库
#binlog-do-db=mytestdb
# 设置不需要复制的数据库
#binlog-ignore-db=mysql
#binlog-ignore-db=infomation_schema
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.

配置解读

这段配置是针对 MySQL 数据库的 mysqld 服务部分的设置,主要用于配置 MySQL 的二进制日志(binlog)和复制功能。下面是对每一项配置的解释:

  1. server-id=1
  • 这个选项定义了服务器的唯一标识符。在设置主从复制或集群环境中,每个服务器必须有一个唯一的 server-id。这里设置为 1。
  1. binlog_format=STATEMENT
  • 指定了二进制日志的记录格式。STATEMENT 表示记录每一条影响数据的 SQL 语句。其他可选格式有 ROWMIXED
  • ROW 格式记录每一行数据的变化。
  • MIXED 是 MySQL 自动选择 STATEMENTROW 格式的一种混合模式。
  1. log-bin=binlog (注释掉)
  • 这一行是用来指定二进制日志文件的前缀名称。默认情况下,MySQL 使用 binlog 作为前缀。如果这一行被注释掉,则使用默认值。
  1. binlog-do-db=mytestdb (注释掉)
  • 如果启用此选项,只有指定的数据库 (mytestdb) 的更改会被记录到二进制日志中,并且只能复制该数据库。由于它被注释掉了,所有数据库的更改都会被记录。
  1. binlog-ignore-db=mysql (注释掉)
  • 如果启用此选项,指定的数据库 (mysql) 的更改将不会被记录到二进制日志中,并且不会被复制。这个选项被注释掉了,意味着所有的数据库都可能被复制。
  1. binlog-ignore-db=information_schema (注释掉)
  • 同样,如果启用此选项,information_schema 数据库的更改将不会被记录到二进制日志中。由于它也被注释掉了,所以 information_schema 的更改也会被记录并可以被复制。

总结来说,这段配置启用了 MySQL 的二进制日志功能,并设置了日志记录格式为 STATEMENT。它没有显式地排除任何数据库不被复制,因此默认情况下所有数据库的更改都会被记录和复制。需要注意的是,在实际部署中,这些配置应该根据具体的环境需求进行调整。