问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何快速设定MySQL同步

发布网友 发布时间:2022-04-26 14:13

我来回答

1个回答

热心网友 时间:2022-04-08 20:50

这只是一个最直接设置slave的办法,并不是只有一个。例如,已经有了master的数据快照(snapshot),master已经设置了服务器编号ID(server_id)并且启用了二进制日志,这就无需关闭master或者阻止在master上更新数据了。详情请看"6.9 Replication FAQ"。 想要完全掌握MySQL同步设置,最好把本章全部读完,并且测试在"14.6.1 SQL Statements for Controlling Master Servers"和"14.6.2 SQL Statements for Controlling Slave Servers"中提到的全部语句。而且要熟悉各种同步设置选项,详情请看"6.8 Replication Startup Options"。 注意,这个过程以及后面一些同步SQL语句需要有 SUPER 权限。MySQL 4.0.2以前,则是 PROCESS 权限。 请确认master和slave上都安装了较近的MySQL版本,且这些版本之间要能兼容,在"6.5 Replication Compatibility Between MySQL Versions"中列出来了。请确认在最新版本中还有存在问题,否则不要报告该bug。 在master上新加一个帐户,slave才能用它来连接。这个帐户必须授予 REPLICATION SLAVE 权限。如果这个帐户只用于同步(推荐这么做),那就没必要授予其他权限了。设定你的域是 mydomain.com,想要授权一个帐户 repl 使用密码 slavepass,允许它可以在域里的任何主机连接到master上。用 GRANT 语句来创建帐户: mysql> GRANT REPLICATION SLAVE ON *.* -> TO 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass'; 在MySQL 4.0.2以前,用 FILE 权限来代替 REPLICATION SLAVE: mysql> GRANT FILE ON *.* -> TO 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass'; 如果打算在slave上执行 LOAD TABLE FROM MASTER 或 LOAD DATA FROM MASTER 语句,那么必须给该帐户授予附加权限: 授予全局 SUPER 和 RELOAD 权限。 授予对想要加载的所有表上的 SELECT 权限。在master上任何没有 SELECT 权限的表都会被 LOAD DATA FROM MASTER 略过。 如果只用到 MyISAM 表,执行 FLUSH TABLES WITH READ LOCK 语句刷新所有表并且阻止其他写入: mysql> FLUSH TABLES WITH READ LOCK; 不要退出执行 FLUSH TABLES 语句的客户端,以保持读锁有效(如果退出了,读锁就释放了)。然后从master上取得数据快照。比较简单的办法就是把数据目录打包压缩。例如,Unix上的 tar, PowerArchiver, WinRAR, WinZip,或Windows上的类似程序。想要用 tar 来创建一个压缩包,包括所有的数据库,只需执行以下命令(把目录改成你的真实路径): shell> tar -cvf /tmp/mysql-snapshot.tar . 如果只想打包一个数据库 this_db,只需执行命令: shell> tar -cvf /tmp/mysql-snapshot.tar ./this_db 然后把这个文件拷贝到slave的 `/tmp` 目录下。在slave上,执行以下命令解开压缩包(把目录改成你的真实路径): shell> tar -xvf /tmp/mysql-snapshot.tar 可能不需要同步 mysql 数据库,因为在slave上的权限表和master不一样。这时,解开压缩包的时候要排除它。同时在压缩包中也不要包含任何日志文件,或者 `master.info~ 或 `relay-log.info` 文件。当在master上的 FLUSH TABLES WITH READ LOCK 语句还生效时,在master上读取当前二进制文件的文件名及偏移位置: mysql > SHOW MASTER STATUS; +---------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +---------------+----------+--------------+------------------+ | mysql-bin.003 | 73 | test | manual,mysql | +---------------+----------+--------------+------------------+ File 字段显示了二进制日志文件名,Position 字段显示了日志偏移位置。在这个例子中,日志文件是 mysql-bin.003,偏移位置是 73。记下这些值,在后面设置slave的时候就需要用到它们了。它们表示了slave要从master的哪个偏移位置开始处理更新操作。取得快照和记录下日志名及偏移位置后,就可以让master释放读锁了: mysql> UNLOCK TABLES; 如果用到 InnoDB 表,那么最好使用 InnoDB Hot Backup 工具。它无需在master上请求任何锁就能做到快照的一致性,并且在后面中在slave上要用到的快照中已经记录了日志文件名以及偏移位置。InnoDB Hot Backup 是费免费(商业的)的附加工具,它没有包含在MySQL发布包中。访问 InnoDB Hot Backup 的主页 http://www.innodb.com/manual.php 查看更多详细信息。除去 InnoDB Hot Backup 的另一个最快的办法就是关闭master服务器,拷贝 InnoDB 数据文件,日志文件,以及表结构定义文件(`.frm` 文件)。想要记录当前日志文件及偏移位置,需要在master关闭前执行如下可语句: mysql> FLUSH TABLES WITH READ LOCK; mysql> SHOW MASTER STATUS; 尽快记下 SHOW MASTER STATUS 显示结果中的日志文件及偏移位置。然后,在不解锁的情况下关闭master,确保master上的快照和记录的结果一致: shell> mysqladmin -u root shutdown 还有一个方法可以同时用于 MyISAM 和 InnoDB 表,这就是在master上作SQL转储而无需如上所述备份二进制日志。在master上运行 mysqlmp --master-data 命令,然后把结果文件转储到slave上。不过,这比拷贝二进制日志慢点。如果master在以前没有启用 --log-bin 选项,那么执行 SHOW MASTER STATUS 语句的结果中的文件名及偏移位置值为空了,那么后面在slave上指定的参数值就是空字符串(') 和 4了。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
年终会活动策划方案 深度解析:第一财经回放,探索财经新风向 逆水寒手游庄园怎么邀请好友同住 逆水寒手游 逆水寒不同区可以一起组队吗? 逆水寒手游 逆水寒怎么进入好友世界? 逆水寒手游 逆水寒怎么去别人的庄园? 使用puppeteer实现将htmll转成pdf 内卷时代下的前端技术-使用JavaScript在浏览器中生成PDF文档 【译】将HTML转为PDF的几种实现方案 变形金刚08动画怎么样 我认识的钟乳石作文400字快 石笋和钟乳石的形成 挖断的钟乳石还会长高吗? 石钟乳是怎样形成的? 放在家中的钟乳石会长高吗? 下列不属于生命现象的是(  )A.钟乳石不断长高B.雨后春笋C.葵花向阳D.种子萌 钟乳石为什么会不断生长? 下列属于生物的是(  ) A.溶洞里不断长高的钟乳石 B.会踢球的机器人 C.正在升空的礼花 想一想,溶洞的乳石也在不断的生长,喜马拉雅山也在缓慢的"长高"。难道钟乳石和喜马拉雅山都是生物吗 什么是钟乳石?钟乳石是生物吗?它是怎么形成的? 没有生命的钟乳石,凭借什么“长高”? 钟乳石的形成算是生长现象吗? 下列属于生物的是(  ) A. 不断长高的钟乳石 B. 变形金刚 C. 蘑菇 D. 珊瑚礁 钟乳石是不是生物?为什么它会长大 电脑键盘怎么复制和黏贴,怎么截图? 微信公众平台个人注册需要什么资料 个人怎么注册微信平台 笔记本插上耳机可以听到声音但是说话别人听不到? 民生银行企业网银怎么转账啊 民生银行手机银行可以对公转账吗 急需一篇证券公司营销类员工转正申请书。要求2000字以上。谢谢!_百度... MySQL同步工具如何使用 mysql如何同步存储过程。 求一篇工厂员工转正申请表一千字左右 算利润表时投资收益科目怎么算 请问利润表第三项中的投资收益具体指什么, 利润表中的“投资收益”科目,核算的内容包含那些 ??? “利润表中应确认的投资收益”跟“持有交易性金融资产产生的累计损益”有什么区别? 利润表中的投资收益是经营活动产生的么,怎么区分经营活动和金融活动产生的投资收益呢 用友U8里,利润表中的投资收益公式如何设置? 投资收益应包含在“营业利润”中还是“利润总额”中? 电脑耳机能听音乐但是语音聊天听不到对方说话 约克中央空调“E3”故障怎么解决?约克空调E3故降怎么解决? 约克中央空调故障ARm 人民银行现有的货币层次划分需要改变吗 约克中央空调加热报警E1 在我国货币层次中准货币是指 梦见吃鹅肉时盘子里有很多豆腐干和红萝卜出现 和别人说话,别人说鹅,是肯定的意思吗? 梦见有人给鹅肉给老公吃