MySQL 主从复制的配置

by z9g

1. 主服务器的配置
my.cnf:

[mysqld]
log-bin=mysql-bin
server-id=1

server-id的值必须是 1 到 2^32-1 之间的正整数

2. 在主服务器上创建复制使用的帐户

GRANT REPLICATION SLAVE ON *.* TO "replication_user_name"@"slave_host_name" IDENTIFIED BY 'replication_password';
SHOW MASTER STATUS;

3. 备份数据
冷备份:直接停mysqld
热备份:

  • flush tables;
  • show master status; 记录下File和Position
  • unlock tables;

复制数据:

  • 拷贝master的mysql 数据目录到slave上
  • 删除slave mysql数据目录下的master.info和relay-log.info
  • chown -R mysq:mysql slave的mysql 数据目录

4. 从服务器的配置
my.cnf:

[mysqld]
server-id=2

这里的server-id不能跟master的server-id重复

CHANGE MASTER TO
  MASTER_HOST='master_host_name',
  MASTER_USER='replication_user_name',
  MASTER_PASSWORD='replication_password',
  MASTER_PORT=master_host_port,
  MASTER_LOG_FILE='recorded_log_file_name',
  MASTER_LOG_POS=recorded_log_position,
  MASTER_CONNECT_RETRY=10;

SLAVE START;
SHOW SLAVE STATUS;

如果SHOW SLAVE STATUS 结果中
Slave_IO_Running=Yes
Slave_SQL_Running=Yes
表示同步成功。