To configure a source to use binary log file position based replication, you must ensure that binary logging is enabled, and establish a unique server ID.
Each server within a replication topology must be configured
with a unique server ID, which you can specify using the
server_id
system variable. This
server ID is used to identify individual servers within the
replication topology, and must be a positive integer between 1
and (232)−1. The default
server_id
value from MySQL 8.0
is 1. You can change the
server_id
value dynamically by
issuing a statement like this:
SET GLOBAL server_id = 2;
How you organize and select the server IDs is your choice, so long as each server ID is different from every other server ID in use by any other server in the replication topology. Note that if a value of 0 (which was the default in earlier releases) was set previously for the server ID, you must restart the server to initialize the source with your new nonzero server ID. Otherwise, a server restart is not needed when you change the server ID, unless you make other configuration changes that require it.
Binary logging is required on the source because the binary log
is the basis for replicating changes from the source to its
replicas. Binary logging is enabled by default (the
log_bin
system variable is set
to ON). The --log-bin
option
tells the server what base name to use for binary log files. It
is recommended that you specify this option to give the binary
log files a non-default base name, so that if the host name
changes, you can easily continue to use the same binary log file
names (see Known Issues in MySQL). If binary logging
was previously disabled on the source using the
--skip-log-bin
option, you must restart the server without this option to
enable it.
The following options also have an impact on the source:
For the greatest possible durability and consistency in a replication setup using
InnoDB
with transactions, you should useinnodb_flush_log_at_trx_commit=1
andsync_binlog=1
in the source'smy.cnf
file.Ensure that the
skip_networking
system variable is not enabled on the source. If networking has been disabled, the replica cannot communicate with the source and replication fails.