Mysql 服务器同步(replication)设置
Mysql 服务器同步(replication)设置MySQL支持单向、异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送到从服务器的更新。当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生的任何更新,然后封锁并等待主服务器通知新的更新。环境介绍:本测试系统平台为window7.各个机器的mysql版本均为5.1.38,其他版本没有测试。一般只要是5.1.x版本,且每台机器版本一致的情况下都适用。主从备份顾名思义,就是一台机器作为主服务器,另外一台或多台作为从服务器。配置过程如下:在主服务器找到MySQL安装目录下(如:C:\Program Files\MySQL\MySQL Server 5.1)my.ini文件,在文件末尾添加如下代码:server-id=1 log-bin=C:\mysqlbackbinlog-do-db=testlog-bin=C:\mysqlback#这里的mysqlback是日志文件名,C:\是路径,在正常运行时,会在C盘下产生mysqlback.000001、mysqlback.000002等日志文件。如果直接设置为log-bin=mysqlback,则会在mysql的data目录下产生这些mysqlback.000001、mysqlback.000002等日志文件。#binlog-do-db=test1#test为需要同步的数据库名。如果需要同步多个数据库,多次使用这条语句即可从服务器找到my.ini文件,在文件末尾添加如下代码:server-id=2 master-host=192.168.1.104master-user=user1master-password=user1master-port=3306master-connect-retry=60master-host=192.168.1.104#主复制服务器的主机名或IP地址。如果没有给出该选项,从服务器线程不启动。master-port=3306#如果mysql服务使用的默认端口3306,就可以省略此项master-connect-retry=60#在主服务器宕机或连接丢失的情况下,从服务器线程重新尝试连接主服务器之前睡眠的秒数。如果未设置,默认值为60。replicate-do-db=test#告诉从服务器限制默认数据库(由USE所选择)为test的语句的复制。要指定多个数据库,应多次使用该选项,每个数据库使用一次。slave-skip-errors=all #忽略错误继续同步在主服务器上为从服务器打开权限:GRANT REPLICATION SLAVE ON *.*TO ‘user1’@‘192.168.1.11’IDENTIFIED BY‘user1’;重启主从服务器的mysql服务使主从服务器的数据库保持一致根据数据库使用的引擎不同有些区别:MyISAM(本次测试采用的引擎):在锁定主服务器数据库的情况下,可以直接将data下面的数据库文件复制到从服务器data下面,并重启从服务器(如果是直接添加新的数据库不需要重启)在从服务器的mysql命令行内输入如下命令:LOAD DATA FROM MASTER需要说明的是:你需要授予该账户其它权限:授予账户SUPER和RELOAD全局权限。为所有想要装载的表授予SELECT权限。任何该账户不能SELECT的主服务器上的表被LOAD DATA FROM MASTER忽略掉。InnoDb:MyISAM的第二种办法可以获得全局读锁定,然后开始InnoDB表的文件系统快照。创建快照最简单的途径是使用归档程序对主服务器上的数据目录中的数据库进行二进制备份。(这部分没有具体测试,就不说了,摘自《mysql参考手册》第6章 Mysql中的负责 6.4 如何设置复制)查看结果主服务器:一般情况下第一次使用命令show master status查看主服务器状态File 是mysqlback.000001,position是106.从服务器:?说明:在第一次设置完成master,slave之后,如果要修改slave的my.ini里master的设置必须先删除data下面的master.info文件,重启服务才能生效。否则服务器会以master.info中的信息为准。或者另外一个办法就是直接在mysql命令行中使用chang master to命令。二、主主同步主主同步是指AB同时互为master和slave,其操作就是在主从同步的基础上在反过来再设置一次,将从服务器作为主服务器,主服务器作为从服务器。添加代码如下:A(1