mysql从版本以后提供数据库复制功能利用该功能可以实现两个数据库同步主从模式互相备份模式的功能
数据库同步复制功能的设置都在mysql的设置文件中体现mysql的配置文件(一般是f)
在unix环境下在/etc/mysql/f 或者在mysql用户的home目录下面的f
window环境中如果c:根目录下有f文件则取该配置文件当运行mysql的winmysqladminexe工具时候该工具会把 c:根目录下的f 命名为mycnfbak并在winnt目录下创建myinimysql服务器启动时候会读该配置文件所以可以把f中的内容拷贝到 myini文件中用myini文件作为mysql服务器的配置文件
设置方法
设置范例环境
操作系统window professional
mysqlbetamaxntlog
A ip:
B ip:
A:设置
增加一个用户最为同步的用户帐号
GRANT FILE ON ** TO backup@ IDENTIFIED BY
增加一个数据库作为同步数据库
create database backup
B:设置
增加一个用户最为同步的用户帐号
GRANT FILE ON ** TO backup@ IDENTIFIED BY
增加一个数据库作为同步数据库
create database backup
主从模式A>B
A为master
修改A mysql的myini文件在mysqld配置项中加入下面配置
serverid=
logbin
#设置需要记录log 可以设置logbin=c:mysqlbakmysqllog 设置日志文件的目录
#其中mysqllog是日志文件的名称mysql将建立不同扩展名文件名为mysqllog的几个日志文件
binlogdodb=backup #指定需要日志的数据库
重起数据库服务
用show master status 命令看日志情况
B为slave
修改B mysql的myini文件在mysqld配置项中加入下面配置
serverid=
masterhost=
masteruser=backup #同步用户帐号
masterpassword=
masterport=
masterconnectretry= 预设重试间隔秒
replicatedodb=backup 告诉slave只做backup数据库的更新
重起数据库
用show slave status看同步配置情况
注意由于设置了slave的配置信息mysql在数据库目录下生成
所以如有要修改相关slave的配置要先删除该文件否则修改的配置不能生效
双机互备模式
如果在A加入slave设置在B加入master设置则可以做B>A的同步
在A的配置文件中 mysqld 配置项加入以下设置
masterhost=
masteruser=backup
masterpassword=
replicatedodb=backup
masterconnectretry=
在B的配置文件中 mysqld 配置项加入以下设置
logbin=c:mysqllogmysqllog
binlogdodb=backup
注意当有错误产生时*err日志文件同步的线程退出当纠正错误后要让同步机制进行工作运行slave start
重起AB机器则可以实现双向的热备
测试
向B批量插入大数据量表AA()条
A数据库每秒钟可以更新条数据