发一篇如何在两台MySQL数据库间完成同步
通过支付一定费用,客户可以得到优先的24/7支持,访问内容丰富的在线知识库和联系一个专门的技术负责经理。做开辟的时分要做MySQL的数据库同步,两台安装一样的体系,都是FreeBSD5.4,安装了Apache2.0.55和php4.4.0,MySQL的版本是4.1.15,都是今朝最新的版本。1.安拆卸置
两台服务器,分离安装好MySQL,都安装在/usr/local/MySQL目次下(安装步骤省略,请参考相干文档),两台服务器的ip分离是192.168.0.1和192.168.0.2,我们把192.168.0.1作为master数据库,把192.168.0.2作为slave服务器,我们接纳单向同步的体例,就是master的数据是主的数据,然后slave自动往master哪儿同步数据返来。
两台服务器的设置一样,我们把关头的设置文件拷贝一下,默许的设置文件是在/usr/local/MySQL/share/MySQL目次下,分离有my-large.cnf,my-medium.cnf,my-small.cnf等几个文家,我们只是测试,利用my-medium.cnf就好了。MySQL安装完后,默许的设置文件是指定在数据库寄存目次下的,我们用的是4.1.X的,以是设置文件就应当在/usr/local/MySQL/var目次下,因而把设置文件拷贝已往:
cp/usr/local/MySQL/share/MySQL/my-medium.cnf/usr/local/MySQL/var/my.cnf
两台服务器做不异的拷贝设置文件操纵。
2.设置Master服务器
我们要把192.168.0.1设置为主MySQL服务器(master),那末我们就要思索我们必要同步谁人数据库,利用谁人用户同步,我们这里为了复杂起见,就利用root用户举行同步,而且只必要同步数据库abc。
翻开设置文件:
vi/usr/local/MySQL/var/my.cnf
找到一下信息:
#requireduniqueidbetween1and2^32-1#defaultsto1ifmaster-hostisnotset#butwillnotfunctionasamasterifomittedserver-id=1//1为master,2为salve
增加两行:
sql-bin-update-same//同步情势binlog-do-db=abc//要同步的数据库
重启192.168.0.1的MySQL服务器:
/usr/local/MySQL/bin/MySQLadminshutdown/usr/local/MySQL/bin/MySQLd_safe--user=MySQL&
3.设置Slave服务器
我们的slave服务器次要是自动往master服务器同步数据返来,我们编纂设置文件:
vi/usr/local/MySQL/var/my.cnf
找到上面相似的信息:
#requireduniqueidbetween1and2^32-1#defaultsto1ifmaster-hostisnotset#butwillnotfunctionasamasterifomittedserver-id=1
把下面的server-id修正为2,同时增加一些信息:
server-id=2//本MySQL是slave服务器master-host=192.168.0.1//master服务器的IPmaster-user=root//毗连master服务器的用户master-passWord=//毗连master服务器的暗码master-port=3306//毗连端口master-connect-retry=10//重试次数replicate-do-db=abc//要同步的数据库log-slave-updates//同步的情势
重启192.168.0.2的MySQL服务器:
/usr/local/MySQL/bin/MySQLadminshutdown/usr/local/MySQL/bin/MySQLd_safe--user=MySQL&
4.测试安装
起首检察一下slave的主机日记:
cat/usr/local/MySQL/var/xxxxx_err(xxx是主机名)
反省是不是毗连一般,看到相似如许的信息就乐成了
05103111:42:40MySQLdstarted05103111:42:41InnoDB:Started;logsequencenumber043634/usr/local/MySQL/libexec/MySQLd:readyforconnections.Version:4.1.15-logsocket:/tmp/MySQL.sockport:3306Sourcedistribution05103111:42:41SlaveSQLthreadinitialized,startingreplicationinlogFIRSTatposition0,relaylog./new4-relay-bin.000001position:405103111:43:21SlaveI/Othread:connectedtomasterroot@192.168.0.1:3306,replicationstartedinlogFIRSTatposition4
在Master检察信息
/usr/local/MySQL/bin/MySQL-uroot
检察master形态:
MySQL>showmasterstatus;
检察Master下MySQL历程信息:
MySQL>showPRocesslist;
在slave上检察信息:
/usr/local/MySQL/bin/MySQL-uroot
检察slave形态:
MySQL>showslavestatus;
检察slave下MySQL历程信息:
MySQL>showprocesslist;
你再在master的abc库里创建表布局而且拔出数据,然后反省slave有无同步这些数据,就可以够反省出是不是设置乐成。
最初,假如有乐趣的话,能够研讨一下双击热备份,大概一台master,多台slave的同步完成。
你不用花费很多时间和金钱来培训现有的职工,或者去花大价钱雇用那些拥有各种证书的开发者。因为MySQL的维护和管理在很大程度上是“傻瓜型”的。 连做梦都在想页面结构是怎么样的,绝非虚言 再开发调试阶段和OLAP环境中,外键是可以建立的。新版本中加入了SETNULL和SETDEFAULT属性,能够提供能好的级联设置。 多走走一此相关论坛,多看一些实例开发,多交流0经验,没什么的,我也是刚学没多久!加油 记得在最开始使用2k的时候就要用到这个功能,可惜2k没有,现在有了作解决方案的朋友会很高兴吧。 SP4是一个累积性的ServicePack,包含自以前的ServicePack发布以来所有的修补程序(包括MS03-031安全公告)。 作了些试验,发现使用CLR的存储过程或函数在达到一定的阀值的时候,系统性能会呈指数级下滑!这是非常危险的!只使用几个可能没有问题,当一旦大规模使用会造成严重的系统性能问题! 语句级快照和事务级快照终于为SQLServer的并发性能带来了突破。个人感觉语句级快照大家应该应用。事务级快照,如果是高并发系统还要慎用。如果一个用户总是被提示修改不成功要求重试时,会杀人的! 而写到本地,我又考虑到效率问题.大家来讨论讨论吧,分数不打紧,就给10分,十全十美,没啥对错,各抒己见,但是要有说服力的哦~
页:
[1]