16.1.1.3 Creating a User for Replication

Each slave must connect to the master using a MySQL user name
and password, so there must be a user account on the master that
the slave can use to connect. Any account can be used for this
operation, providing it has been granted the
REPLICATION SLAVE privilege. You
may wish to create a different account for each slave, or
connect to the master using the same account for each slave.

You need not create an account specifically for replication.
However, you should be aware that the user name and password
will be stored in plain text within the
master.info file (see
Section 16.2.2.2, “Slave Status Logs”). Therefore, you may want to
create a separate account that has privileges only for the
replication process, to minimize the possibility of compromise
to other accounts.

To create a new account, use CREATE
USER. To grant this account the privileges required
for replication, use the GRANT
statement. If you create an account solely for the purposes of
replication, that account needs only the
REPLICATION SLAVE privilege. For
example, to set up a new user, repl, that can
connect for replication from any host within the
mydomain.com domain, issue these statements
on the master:

The host that you use for this GRANT statement will vary depending on the reverse lookup of the host you are using for replication. In my case this will be read from my /etc/hosts in the order that hosts are listed. So if you have in your /etc/hosts192.168.1.3 replicant.example.com replicant

It will resolve differently than 192.168.1.3 replicant replicant.example.com

Also, if you change this after attempting to start replication, you will need to FLUSH HOSTS to get the updated /etc/hosts to affect the host cache in mysql.