win7下学习 mysql主从复制 一.环境: 主服务器(master):192.168.1.23 mysql版本:5.5 从服务器(slave):192.168.1.24 mysql版本:5.5 二.master设置 1.修改 my.ini 在 [mysqld]后面增加如下内容: #主服务器标识 server-id=1 # 设置二进制文件路径(在安装mysql目录下新建这些目录,mysql_log为文件名) log-bin=d:mysqllogsmysql_log # 允许同步的数据库 binlog-do-db=test #不允许同步的数据库 binlog-ignore-db=mysql binlog-ignore-db=yes 2.重启 mysql 3.在master上增加一个同步的用户名 GRANT REPLICATION SLAVE ON *.* TO 'lin3615'@'192.168.1.24' IDENTIFIED BY '123456'; 4.如果master上要用同步的数据,应先备份一份到 slave,使他们数据一致 5.mysql>show master status; 可以查看情况 三.slave操作 1.修改slave的 my.ini log-bin=f:mysqllogsmysql_log # 设置日志的路径,与master类似 server-id=2 # salve服务器标识,唯一,不能与master相同 replicate-do-db=test # 设置要同步的数据库 replicate-ignore-db=mysql # 忽略要同步的数据库 2.重启 mysql 3.用命令行执行: mysql>CHANGE MASTER TO MASTER_HOST='192.168.1.23', MASTER_USER='lin3615',MASTER_PASSWORD='123456'; 其中: master_host: master ip master_user:master上作为同步用的用户名 master_password:设置同步用户名密码 4.再重启 mysql>slave start; mysql > show slave statusG; 查看 Slave_IO_Running:Yes Slave_SQL_Running:Yes 如是以上信息,即成功了 可以测试 ============== 如果出错,要重新设置从数据库,则要用 slave stop;停止从服务器的从工作 在数据库存放数据文件夹中删除 master.info文件和hostname-relay-bin开头的文件 再重新: 3.用命令行执行: mysql>CHANGE MASTER TO MASTER_HOST='192.168.1.23', MASTER_USER='lin3615',MASTER_PASSWORD='123456'; master.info:记录了 mysql主服务器上的日志文件和记录位置,连接密码 删除二进制文件,包括 log.index文件 如果发生 Slave_IO_Running:connection 一般是主服务器的防火墙限制,(一般的杀毒软件等) 有时候如果发现 master_log_file,master_log_pos不一致,会出错, 则可以用如下方式处理: change master ......., master_log_file='mysql-bin.00xxxx', master_log_pos=xxx; 上面的值由查看主服务器可得到 ============== 以上是一主一从,如果是多台从的服务器,则与第一台的配置类似,只是在 server-id为唯一 而且在主服务器中把: 3.在master上增加一个同步的用户名 GRANT REPLICATION SLAVE ON *.* TO 'lin3615'@'192.168.1.24' IDENTIFIED BY '123456'; 修改地址为通用的 '%'即可