测试环境:windowx xp
主服务器
版本:5.1.33-community-log
地址:127.0.0.1,localhost
端口:3306
从服务器:
版本:5.5.34-log
地址:127.0.0.1,localhost
端口:3307
(1)主服务器上创建一个用于主从同步的用户repl:
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'127.0.0.1' IDENTIFIED BY '123456';
(2)修改主服务器的mysql配置文件,修改之后重启mysql:
主服务器配置文件my.ini:
[mysqld]
server-id = 1
log-bin = mysql-bin
log_bin_index = mysql-bin.index
binlog-do-db = discuz
binlog-ignore-db = information_schema
binlog-ignore-db = mysql
(3)查询主服务器的二进制日志名和偏移量
主服务器上执行命令:SHOW MASTER STATUS;
记录下File: mysql-bin.000001
Position:106
(4)停止主服务的更新操作,复制data目录下的discuz到从服务的data目录。
1. 锁表:FLUSH TABLES WITH READ LOCK;
2. 数据复制到从服务器data目录下。
3. 解锁:UNLOCK TABLES;
(5)修改从服务器的配置文件my.ini,修改之后重启mysql服务。
从服务器配置文件my.ini:
server-id = 2
log-bin = mysql-bin
log_bin_index = mysql-bin.index
relay_log = mysql-relay-bin
relay_log_index = mysql-relay-bin.index
read_only = 1
skip_slave_start = 1
log_slave_updates = 1
replicate-do-db = discuz
replicate-ignore-db = information_schema
replicate-ignore-db = mysql
(6)从服务器的版本不支持配置文件中设置master_host ,需要在从服务器执行以下命令:
SLAVE STOP;
CHANGE MASTER TO
MASTER_HOST = '127.0.0.1',
MASTER_USER = 'repl',
MASTER_PASSWORD = '123456',
MASTER_PORT = 3306,
MASTER_LOG_FILE = 'mysql-bin.000001',
MASTER_LOG_POS = 106,
MASTER_CONNECT_RETRY = 3;
SLAVE START;
SHOW SLAVE STATUS;
可以看到Slave_IO_State:Connecting to master
再次执行命令:SHOW SLAVE STATUS;
可以看到Slave_IO_State:Waiting for master to send event
这样就好了,在主服务器上做一些更新数据,修改表操作,可以看到从服务器也更新了。
如果有错误:last_io_error有错误信息。