#RHEL5 MYSQL5 master/slave 主从复制 配置

# 确认两台服务器的MYSQL版本,用mysql> SHOW VARIABLES;查看。
# 注意: 最好采用相同的版本,如果达不到要求,必须要保证Master的版本不能高于Slave版本.

mysql>GRANT REPLICATION SLAVE ON *.* TO repl@'%' IDENTIFIED BY 'repl';

#开始之前必须人工同步主从MYSQL,可按以下方法,也可用mysqldump,要预同步的数据库保持一致。
------------人工同步数据库-----------------
mysql> SHOW VARIABLES;        # 先找到basedir位置
service mysqld stop             # 停下master与slave服务器
rm -rf /usr/lib/mysql/*        # 删掉从服务器的全部数据文件
scp mysql_master:/usr/lib/mysql/* /usr/lib/mysql/

-----------修改my.cnf配置文件---------------
#MASTER 配置
[mysqld]
server-id=1                        # 此数随意 不同于slave即可
log-bin=mysql-bin                # 开启 Binary日志, 必须
#binlog-do-db=test            # 可选
#binlog-ignore-db=mysql        # 可选
-----------
#SLAVE 配置
[mysqld]
server-id=2                        # 此数随意 不同于master即可
#replicate-do-db=test          # 需要备份的数据库名
#replicate-ignore-db=mysql    # 忽略的数据库

------------设置自动同步------------------

主从:service mysqld start        # 启动MYSQL服务器
主mysql> SHOW MASTER STATUS;    # 记住MASTER_LOG_FILE与MASTER_LOG_POS

从mysql> CHANGE MASTER TO
MASTER_HOST='192.168.0.2',
MASTER_USER='repl',
MASTER_PASSWORD='repl',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=98;

从mysql> START SLAVE;                # 启动slave服务器同步线程
---------------测试-------------------
从mysql> show slave status \G;
*************************** 1. row ***************************
             Slave_IO_State: Waiting for master to send event
                Master_Host: 192.168.0.2
                Master_User: repl
                Master_Port: 3306
              Connect_Retry: 60
            Master_Log_File: mysql-bin.000001
        Read_Master_Log_Pos: 98
             Relay_Log_File: mysqld-relay-bin.000002
              Relay_Log_Pos: 235
      Relay_Master_Log_File: mysql-bin.000001
           Slave_IO_Running: Yes
          Slave_SQL_Running: Yes
            Replicate_Do_DB:
        Replicate_Ignore_DB:
         Replicate_Do_Table:
     Replicate_Ignore_Table:
    Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
                 Last_Errno: 0
                 Last_Error:
               Skip_Counter: 0
        Exec_Master_Log_Pos: 98
            Relay_Log_Space: 235
            Until_Condition: None
             Until_Log_File:
              Until_Log_Pos: 0
         Master_SSL_Allowed: No
         Master_SSL_CA_File:
         Master_SSL_CA_Path:
            Master_SSL_Cert:
          Master_SSL_Cipher:
             Master_SSL_Key:
      Seconds_Behind_Master: 0
1 row in set (0.00 sec)

从mysql> show processlist;             # 查看是否已经正常启动

好了,现在MASTER上插入数据,再去SLAVE上瞧瞧
-----------------------------