17.1.2.3 Creating a User for Replication

Each slave connects 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
can choose to create a different account for each slave, or
connect to the master using the same account for each slave.

Although you do not have to create an account specifically for
replication, you should be aware that the replication user name
and password are stored in plain text in the master info
repository file or table (see
Section 17.2.4.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.