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 16.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:
mysql> CREATE USER 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%.mydomain.com';See Section 13.7.1, “Account Management Statements”, for more information on statements for manipulation of user accounts.
-> TO 'repl'@'remotehost.mydomain.com' IDENTIFIED BY 'slavepass';
I had to use only the hostname of the slave.
192.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.