|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
由于MySQL数据库已经如此普及,对企业来说它无疑是一个更好的选择。mysql<pstyle="TEXT-INDENT:2em">6.4设置同步<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">以下形貌了怎样疾速设置MySQL同步服务器。假定你盘算同步全体的数据库,而且之前没有设置过。必要封闭master服务器以完玉成部的步骤。<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">本章形貌的历程能够用于一个slave的情形,也能够用于多个slave的情形。<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">这只是一个最间接设置slave的举措,并非只要一个。比方,已有了master的数据快照(snapshot),master已设置了服务器编号ID(server_id)而且启用了二进制日记,这就无需封闭master大概制止在master上更新数据了。概况请看"6.9ReplicationFAQ"。<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">想要完整把握MySQL同步设置,最好把本章全体读完,而且测试在"14.6.1SQLStatementsforControllingMasterServers"和"14.6.2SQLStatementsforControllingSlaveServers"中提到的全体语句。并且要熟习各类同步设置选项,概况请看"6.8ReplicationStartupOptions"。<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">注重,这个历程和前面一些同步SQL语句必要有SUPER权限。MySQL4.0.2之前,则是PROCESS权限。<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">请确认master和slave上都安装了较近的MySQL版本,且这些版本之间要能兼容,在"6.5ReplicationCompatibilityBetweenMySQLVersions"中列出来了。请确认在最新版本中另有存在成绩,不然不要呈报该bug。<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">在master上新加一个帐户,slave才干用它来毗连。这个帐户必需授与REPLICATIONSLAVE权限。假如这个帐户只用于同步(保举这么做),那就没需要授与其他权限了。设定你的域是mydomain.com,想要受权一个帐户repl利用暗码slavepass,同意它能够在域里的任何主机毗连到master上。用GRANT语句来创立帐户:<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">mysql>GRANTREPLICATIONSLAVEON*.*<pstyle="TEXT-INDENT:2em">->TOrepl@%.mydomain.comIDENTIFIEDBYslavepass;<pstyle="TEXT-INDENT:2em">在MySQL4.0.2之前,用FILE权限来取代REPLICATIONSLAVE:<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">mysql>GRANTFILEON*.*<pstyle="TEXT-INDENT:2em">->TOrepl@%.mydomain.comIDENTIFIEDBYslavepass;<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">假如盘算在slave上实行LOADTABLEFROMMASTER或LOADDATAFROMMASTER语句,那末必需给该帐户授与附加权限:<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">授与全局SUPER和RELOAD权限。<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">授与对想要加载的一切表上的SELECT权限。在master上任何没有SELECT权限的表城市被LOADDATAFROMMASTER略过。<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">假如只用到MyISAM表,实行FLUSHTABLESWITHREADLOCK语句革新一切表而且制止其他写进:<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">mysql>FLUSHTABLESWITHREADLOCK;<pstyle="TEXT-INDENT:2em">不要加入实行FLUSHTABLES语句的客户端,以坚持读锁无效(假如加入了,读锁就开释了)。然后从master上获得数据快照。对照复杂的举措就是把数据目次打包紧缩。比方,Unix上的tar,PowerArchiver,WinRAR,WinZip,或Windows上的相似程序。想要用tar来创立一个紧缩包,包含一切的数据库,只需实行以下命令(把目次改成你的实在路径):<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">shell>tar-cvf/tmp/mysql-snapshot.tar.<pstyle="TEXT-INDENT:2em">假如只想打包一个数据库this_db,只需实行命令:<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">shell>tar-cvf/tmp/mysql-snapshot.tar./this_db<pstyle="TEXT-INDENT:2em">然后把这个文件拷贝到slave的`/tmp`目次下。在slave上,实行以下命令解开紧缩包(把目次改成你的实在路径):<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">shell>tar-xvf/tmp/mysql-snapshot.tar<pstyle="TEXT-INDENT:2em">大概不必要同步mysql数据库,由于在slave上的权限表和master纷歧样。这时候,解开紧缩包的时分要扫除它。同时在紧缩包中也不要包括任何日记文件,大概`master.info~或`relay-log.info`文件。当在master上的FLUSHTABLESWITHREADLOCK语句还失效时,在master上读取以后二进制文件的文件名及偏移地位:<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">mysql>SHOWMASTERSTATUS;<pstyle="TEXT-INDENT:2em">+---------------+----------+--------------+------------------+<pstyle="TEXT-INDENT:2em">|File|Position|Binlog_Do_DB|Binlog_Ignore_DB|<pstyle="TEXT-INDENT:2em">+---------------+----------+--------------+------------------+<pstyle="TEXT-INDENT:2em">|mysql-bin.003|73|test|manual,mysql|+---------------+----------+--------------+------------------+对免费版的用户也具有充足的支持服务。在dev.mysql.com上,一个大型的MySQL学习教程强大社区用户和开发者可以讨论所有关于MySQL的事情。这个站点拥有博客、指南、视频、技术交流会、白皮书和论坛等方式的交流。 |
|