Preparing the MySQL Cluster for replication consists of the following steps:
Check all MySQL servers for version compatibility (see Section 17.6.2, “MySQL Cluster Replication — Assumptions and General Requirements”).
Create a slave account on the master Cluster with the appropriate privileges:
mysqlM
>GRANT REPLICATION SLAVE
->ON *.* TO '
->slave_user
'@'slave_host
'IDENTIFIED BY '
slave_password
';
In the previous statement,
slave_user
is the slave account
user name, slave_host
is the host
name or IP address of the replication slave, and
slave_password
is the password to
assign to this account.
For example, to create a slave user account with the name
“myslave
,” logging in from the
host named “rep-slave
,” and
using the password “53cr37
,”
use the following GRANT
statement:
mysqlM
>GRANT REPLICATION SLAVE
->ON *.* TO 'myslave'@'rep-slave'
->IDENTIFIED BY '53cr37';
For security reasons, it is preferable to use a unique user account — not employed for any other purpose — for the replication slave account.
Configure the slave to use the master. Using the MySQL
Monitor, this can be accomplished with the
CHANGE MASTER TO
statement:
mysqlS
>CHANGE MASTER TO
->MASTER_HOST='
->master_host
',MASTER_PORT=
->master_port
,MASTER_USER='
->slave_user
',MASTER_PASSWORD='
slave_password
';
In the previous statement,
master_host
is the host name or IP
address of the replication master,
master_port
is the port for the
slave to use for connecting to the master,
slave_user
is the user name set up
for the slave on the master, and
slave_password
is the password set
for that user account in the previous step.
For example, to tell the slave to replicate from the MySQL
server whose host name is
“rep-master
,” using the
replication slave account created in the previous step, use
the following statement:
mysqlS
>CHANGE MASTER TO
->MASTER_HOST='rep-master',
->MASTER_PORT=3306,
->MASTER_USER='myslave',
->MASTER_PASSWORD='53cr37';
For a complete list of clauses that can be used with this
statement, see Section 12.5.2.1, “CHANGE MASTER TO
Syntax”.
You can also configure the slave to use the master by setting
the corresponding startup options in the slave server's
my.cnf
file. To configure the slave in
the same way as the preceding example
CHANGE MASTER TO
statement, the
following information would need to be included in the slave's
my.cnf
file:
[mysqld] master-host=rep-master master-port=3306 master-user=myslave master-password=53cr37
For additional options that can be set in
my.cnf
for replication slaves, see
Section 16.1.3, “Replication and Binary Logging Options and Variables”.
To provide replication backup capability, you will also need
to add an ndb-connectstring
option to the
slave's my.cnf
file prior to starting
the replication process. See
Section 17.6.9, “MySQL Cluster Backups With MySQL Cluster Replication”, for
details.
If the master cluster is already in use, you can create a backup of the master and load this onto the slave to cut down on the amount of time required for the slave to synchronize itself with the master. If the slave is also running MySQL Cluster, this can be accomplished using the backup and restore procedure described in Section 17.6.9, “MySQL Cluster Backups With MySQL Cluster Replication”.
ndb-connectstring=management_host
[:port
]
In the event that you are not using MySQL Cluster on the replication slave, you can create a backup with this command on the replication master:
shellM
>mysqldump --master-data=1
Then import the resulting data dump onto the slave by copying
the dump file over to the slave. After this, you can use the
mysql client to import the data from the
dumpfile into the slave database as shown here, where
dump_file
is the name of the file
that was generated using mysqldump on the
master, and db_name
is the name of
the database to be replicated:
shellS
>mysql -u root -p
db_name
<dump_file
For a complete list of options to use with mysqldump, see Section 4.5.4, “mysqldump — A Database Backup Program”.
If you copy the data to the slave in this fashion, you
should make sure that the slave is started with the
--skip-slave-start
option on the
command line, or else include
skip-slave-start
in the slave's
my.cnf
file to keep it from trying to
connect to the master to begin replicating before all the
data has been loaded. Once the data loading has completed,
follow the additional steps outlined in the next two
sections.
Ensure that each MySQL server acting as a replication master
is configured with a unique server ID, and with binary logging
enabled, using the row format. (See
Section 16.1.2, “Replication Formats”.) These options can be
set either in the master server's my.cnf
file, or on the command line when starting the master
mysqld process. See
Section 17.6.6, “Starting MySQL Cluster Replication (Single Replication Channel)”, for
information regarding the latter option.
User Comments
Add your own comment.