UNIX设置MySql数据同步实现复制功能_MySQL
时间:2021-07-01 10:21:17
帮助过:16人阅读
mysql从3.23.15版本以后提供数据库复制功能。利用该功能可以实现两个数据库同步,主从模式,互相备份模式的功能。 $wM8>bt
H% Q{sd
数据库同步复制功能的设置都在mysql的设置文件中体现。mysql的配置文件(一般是my.cnf) &kKbqz
-, [ FjE&h
在unix环境下在/etc/mysql/my.cnf 或者在mysql用户的home目录下面的my.cnf。 I=3Cp
*E&b.T
window环境中,如果c:根目录下有my.cnf文件则取该配置文件。当运行mysql的winmysqladmin.exe工具时候,该工具会把 c:根目录下的my.cnf 命名为mycnf.bak。并在winnt目录下创建my.ini。mysql服务器启动时候会读该配置文件。所以可以把my.cnf中的内容拷贝到 my.ini文件中,用my.ini文件作为mysql服务器的配置文件。 [)" S
Hvb K}P_\P
设置方法: [,HKoL?
t,>g?)H(
设置范例环境: _g0pl*iR
Uu 7zb|
操作系统:window2000 professional e'B$k;D
wh V*O6"
mysql:4.0.4-beta-max-nt-log e4 mDL&
DBz@8lS
A ip:10.10.10.22 F&|J2@Ap
B ip:10.10.10.53 sZ$al
mK~7'CvF
A:设置 [TEUq[JK2
6Ct2V[Q$Q
1.增加一个用户最为同步的用户帐号: - 0(I|L4
q]AMcZ
GRANT FILE ON *.* TO backup@'10.10.10.53' IDENTIFIED BY ‘1234’ q0m0B= \Q
_QH0%h
2.增加一个数据库作为同步数据库: Y?e/
k8I.~j\VF)
create database backup e[UJ\}[y
rFMwl8Q*
B:设置 DP10fG
rRc6fr
1.增加一个用户最为同步的用户帐号: #Iy}(Zr
HO 3'1Z_
GRANT FILE ON *.* TO backup@'10.10.10.22' IDENTIFIED BY ‘1234’ k[#[%B
1c^J}/ l
2.增加一个数据库作为同步数据库: :eEiJ#e7-p
gUD94M
create database backup #_*N5,WS6
eE%R<_{m
主从模式:A->B N}R_bA]q+
1 |HAAlh
A为master u]m_p86^pB
$tb_`[
修改A mysql的my.ini文件。在mysqld配置项中加入下面配置: ;0/#:^?
>M+K |
server-id=1 p{|x:zi
log-bin *pGpg5wB
tR/)M
#设置需要记录log 可以设置log-bin=c:mysqlbakmysqllog 设置日志文件的目录, s&7Xm @le
5Y[x?r
#其中mysqllog是日志文件的名称,mysql将建立不同扩展名,文件名为mysqllog的几个日志文件。 (axI Fp
&B-o,,4N
binlog-do-db=backup #指定需要日志的数据库 C{/+5HTf
w0X! "(U!
重起数据库服务。 I7+(t$4E!
用show master status 命令看日志情况。 U mO$
AKSmo
B为slave f7^=n F~
9n Xr p@EZ
修改B mysql的my.ini文件。在mysqld配置项中加入下面配置: o$t*Jg=z
!Le1 O?p
server-id=2 3G7J'
master-host=10.10.10.22 srGGomj984
master-user=backup #同步用户帐号 `dR[}!r)
master-password=1234 0zwgQ4??P2
master-port=3306 V+hO_iYf
master-connect-retry=60 预设重试间隔60秒 A+LoWU%_}
replicate-do-db=backup 告诉slave只做backup数据库的更新 c I^off
4p?!a f.
重起数据库 Mm?Gs }
oE~sr'
用show slave status看同步配置情况。 ?qFQu
s71E p
注意:由于设置了slave的配置信息,mysql在数据库目录下生成master.info E_)),2k
xNp7hrwP1
所以如有要修改相关slave的配置要先删除该文件。否则修改的配置不能生效。 >McJz'
S~Ft#h<
双机互备模式。 @,zDg/W:
}_xSGLk
如果在A加入slave设置,在B加入master设置,则可以做B->A的同步。 -KXKEeAh
w=o@ zdAh
在A的配置文件中 mysqld 配置项加入以下设置: R/c/}kj+
6d UF#=4(
master-host=10.10.10.53 gk OLU
master-user=backup hTItT4:hb
master-password=1234 uKaEKmcKt
replicate-do-db=backup a}Oj6
master-connect-retry=10 :@, vm&
A,"^AEu
在B的配置文件中 mysqld 配置项加入以下设置: Xy((T
c]K!=k
log-bin=c:mysqllogmysqllog 2U|6Y^
binlog-do-db=backup R~ ZA!q
^[?]x5mWU
注意:当有错误产生时*.err日志文件。同步的线程退出,当纠正错误后要让同步机制进行工作,运行slave start +sO?1xku
wJ59&(
重起AB机器,则可以实现双向的热备。 W&4C
lx[;~0y0=
测试: pYmmUjz
16rkj!`i
向B批量插入大数据量表AA(1872000)条 [uFc(E
Q*dJ =
A数据库每秒钟可以更新2500条数据。