转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> MySql >> 正文
Mysql 5.0 Replication 说明         ★★★★

Mysql 5.0 Replication 说明

作者:闵涛 文章来源:闵涛的学习笔记 点击数:826 更新时间:2009/4/22 20:48:49
   Mysql 5.0正式的版本,我是在11月1号下的,好象从他网站上看10月24号就公布了,目前下的是5.015. Replicatons配置目前中文资料不多,主要是基于 4和3的一些配置方法。开始我也是参照这些资料配置的,不过后来发现总是不能同步。开始以为是人家写错了,或者自己没准确按照步骤执行,可后来检查多次发现的确没错。那到底怎么会事儿? 想来想去,唯一可能就是Mysql 5.0的配置方法有所不同,其实最好的方法还是去看Mysql 5.0自己的手册。网上已经有多篇关于这个的说明,这里不具体描述。以下是一些我找到的中文资源,如果有兴趣最好先看看中文的内容。附注(1,2)都是一些中文资源。 当然最好还是看Mysql自己的5.0说明文档第六章(附注 3)有专门介绍。实际Mysql 自己说明上讲的非常清楚该怎么配置,唯一问题是你是不是有耐心看完着一堆洋文。
  如果你没耐性看完Mysql的手册,那么你就照着我下面列出的注意事项,参照中文步骤配置。我这里只记录一些5.0需要注意的内容,和我认为和以前版本有较大区别的地方。有些地方我也没完全搞明白,抱着能用就成的想法,也没具体深究,其实如果有工夫,真可以再自己看看。

1  最关键的,当然就是Slave的权限问题。 很多在3/4 上能配置起来可到了5以后怎么也配置不起来的主要问题,就是Slave的权限。 以前只  Grant  file  权限是不够的,必须有管理权限。否则你怎么配置也一样不能复制,这个就是关键。 在配置Salve端的时候 一定要给连接用户赋管理员权限,这个权限与数据库权限不同。
GRANT SUPER,REPLICATION CLIENT,REPLICATION SLAVE,RELOAD ON *.* TO repl@"%" IDENTIFIED BY ''''repl_pass''''; 如果你只为好玩,哪给你个建议不管哪端都 Grant all,这样应该最保险。不过这个只是自己开发测试用的偷懒方法,如果你真打算当作应用来使用。哪还是老老实实的一个个权限赋。

2  如果Master 和 Slave是在2个网段的机器,那么实际上Master的 remote user应该不止 Slave哪个ip的user。这个具体是为什么大家可以自己象,我举个列子 Master : 192.168.1.3 , Slave : 10.145.1.2
那么在Master上不光要配置一个 backup@ 10.145.1.2 还需要配置一个 backup@192.168.1.1 ,而且这个backup@192.168.1.1需要Slave client 的权限。具体为什么可以自己想,我只说明我在实际配置中遇到的情况。

3 关于双向Replications 的问题。 这里需要说明的server-id ,对于使用 Replications 功能,server-id 不能是<2的id,反正手册上说0是不可以的,我试验也的确不成,最好是设置大点。我的做法是master从99开始计数。slave都是连续-1。使用Replications必须 Master机my.ini/my.conf上添加 log-bin 这个参数。如果你要自己指定日志名称可以 log-bin= /user/xxxxx/longname 或者  log-bin= c: logname。这里要说明的是在windows上 文件路径是要写成 c:logname,不能有\。

4 另外需要注意的就是binlog产生后,如何设置同步点的问题。由于mysql 只会在第一次设置my.ini/my.conf文件的时候读取默认mysqld段中replications信息。因此一但产生了master.info信息,那么以后每次读取同步点信息都是从这个文件里读取,你怎么改mysqld里的配置信息都没有。所以才需要mysql 命令 master chang to +相应变量修改来修改同步点信息。 master.info信息在 data目录下,我没试过linux下mysql 的实际文件产生位置,应该差不多。如果需要修改同步配置信息。2个方法。最省事情的方法就是停掉mysql 的服务,然后删除master.info和log信息文件。这样mysql再下次启动的时候会重新读取mysqld里的信息。当然这有个前提,replication 动作已经是成功的。否则如故master_log_file和master_log_pos等等信息不对,那么就算重新配置了,你还是需要用change master to 来修改。 第二个方法就是用change master to 来修改。这个修改动作都是在slave 机器上进行的。首先你需要用 slave stop 停掉slave 服务,然后是change master to ,最后slave start.

5 replication 的数据库需要指定,在master 机器上用 binlog-do-db= dbname 来指定,这个参数可以重复多个,来指定多个数据库的replication  .在slave 上用replicate-do-db=dbname 来指定。

6 最后一个可能遇到的问题就是怎么把master 机器的数据库load 到slave上。据说最省事的方法是 load data from master。不过我实验N 次都以失败告终。当然我遇到的问题,可能不是配置问题,而是数据库本身的问题,因为根据报错信息,好象我原来用的数据库中表里字段存在没有设置默认信息的。总是导了一个表就over掉了。这里顺便说一下,mysql 推出了migration toolkit工具,不过我发现这个东西并不象他说的那么好。对于异构数据库要求比较严格,个别是表结构语法都要求比较严格。个人认为用处不大。 我load数据的方法很简单,使用mysql 自己的administrator 工具,直接备份,然后restore到slave上。这里需要注意的是,我发现mysql目前对他自己view支持的也不是非常完善,view 的确可以使用,但在restore的时候总会出些奇怪问题,如果用他的工具看view 的source 也是不完整的。我估计他的ddl还是不够完善,不过有总比没有强。

7 关于 mysql 的版本问题,mysql 5.0说明上指出,新版本并不完全兼容老版本的replication ,所以master/slave的 mysql版本选择,最好不要搞的不一样。少麻烦的方法就都装同一个版本。这样不需要考虑版本兼容问题。

   最后要说的是replication 配置能一次 ok的可能性不大,肯定要多试几次。出了问题注意多看mysql 自己的services log 。个人感觉mysql administraotr 这个工具很不错。如果配置不成功 slave  的log上总会有Error提示你为什么的。Mysql replication 配置目前我也只是知道一些皮毛,并不完全掌握。而且在使用中发现,曾经出现多次slave 不能正常停止,造成master整个replication库全都当掉,基本就是数据库被毁掉了。当然这个可能和我操作有很大关系,因为在配置的时候实验了很多方法。但个人感觉replication 功能虽然是可以用的,但用的时候一定要小心,特别是注意master机的备份工作,否则真要DB 嗖的一下不见了,后果...... 总之小心驶的万年船。


附注:
1. 
http://art.21e.cn/tec/server/database/3950.html
2. 
http://www.21ds.net/article/database/MySQL/2005-06/09/584_1.html
3.  http://dev.mysql.com/doc/refman/5.0/en/replication.html


[MySql]PHP存取 Mysql 数据乱码终极解决方案  [MySql]解决Table xxx is marked as crashed and should …
[MySql][MySQL]快速解决"is marked as crashed and shoul…  [MySql]MySQL DELETE语法用法详解
[MySql]mysql中时间日期格式化  [MySql]修改mysql导入文件大小限制
[其他]MySql常用命令大全  [Web开发]把ACCESS的数据导入到Mysql中的方法详解
[MySql]解决mysql 1040错误Too many connections的方法  [系统软件]利用crontab系统每天定时备份MySQL数据库
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台