#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上瞧瞧
-----------------------------
# 确认两台服务器的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上瞧瞧
-----------------------------
转载于:https://blog.51cto.com/dywer/221071