环境:主windows server 2008R2 从windows xp sp3 mysql5.1.70
主IP:172.16.11.50 从IP:172.16.11.73
首先把主服务器的数据库备份并导入到从服务器上上,这包两台机器上的数据库是一致的,配置过程中不要让mysql写入的操作,如果有就要锁表,最好不要在跑业务的情况下配置
主库配置my.ini,在[mysqld]下添加配置(如果有server-id,log-bin就无需重复添加)
#Master Config
#设置唯一的ID编号
server-id = 1
#二进制文件存放路径,默认路径在mysql的data文件夹下
log-bin = mysql-bin
#需要同步的数据库名称,可不写,如果写了就要和Slave上配置保持一致.
binlog-do-db = login
binlog-do-db = log
binlog-do-db = server
#不需要同步的数据库名称,可不写,如果写了就要和Slave上配置保持一致
binlog-ignore-db = mysql
保存,重启mysql服务
创建新用户slave,密码slave,不建议使用root
mysql>grant replication slave,reload,super on *.* to [email protected] identified by 'slave';
mysql>flush privileges;
mysql>show master status;
#记录File和Position的数值
mysql>quit
从库配置,在[mysqld]下添加配置(如果有server-id,log-bin等就不要重复添加)
#Slave Config
#设置唯一的ID编号,不得与主库编号一致
server-id = 2
#二进制文件存放路径,默认路径在mysql的data文件夹下
log-bin = mysql-bin
#需要同步的数据库名称,要和Master上配置保持一致
replicate-do-db = login
replicate-do-db = log
replicate-do-db = server
#不需要同步的数据库名称,可不写,如果写了就要和Master上配置保持一致
replicate-ignore-db = mysql
保存,重启mysql服务.
登陆数据库
mysql>change master to master_host='172.16.11.50',master_user='slave',master_password='slave',master_log_file='mysql-bin.000002',master_log_pos=855;
mysql> start slave;
mysql> show slave status\G
其中Slave_IO_Running: Yes 和 Slave_SQL_Running: Yes 两项都为Yes,说明配置成功.此时改动主库信息,从库会自动同步,可以自己测试下.
这里要注意几点
1.在mysql5.1以上版本中是不支持master设置的,如果添加了master设置,数据库就无法重启了.所以建议主库只需要指定server-id和log-bin即可,这样配置有一个好处就是你在从服务器配置的时候只要添加同步的数据库无需在配置主.
2.一般错误都是都是File和Position的数值不一致.
3.最好在dos下使用命令配置,最好不要使用一些图形的工具,如Navicat之类的工具.