匿名用户

1级

2016-02-29 回答

一、 概述 MySQL从3.23.15版本以后提供数据库复制(replication)功能,利用该功能可以实现两个数据库同步、主从模式、互相备份模式的功能。本文档主要阐述了如何在linux系统中利用mysql的replication进行双机热备的配置。 二、 环境 操作系统:Linux 2.6.23.1-42.fc8 # SMP(不安装XEN) Mysql版本:5.0.45-4.fc8 设备环境:PC(或者虚拟机)两台 三、 配置 数据库同步复制功能的设置都在MySQL的配置文件中体现,MySQL的配置文件(一般是my.cnf):在本环境下为/etc/my.cnf。 3.1 设置环境: IP的设置: A主机 IP:10.10.0.119 Mask:255.255.0.0 B主机 IP:10.10.8.112 Mask:255.255.0.0 在IP设置完成以后,需要确定两主机的防火墙确实已经关闭。可以使用命令service iptables status查看防火墙状态。如果防火墙状态 为仍在运行。使用service iptables stop来停用防火墙。如果想启动关闭防火墙,可以使用setup命令来禁用或定制。 最终以两台主机可以相互ping通为佳。 3.2 配置A主(master) B从(slave)模式 3.2.1 配置A 为master 、增加一个用户同步使用的帐号: GRANT FILE ON *.* TO ‘backup’@'10.10.8.112' IDENTIFIED BY ‘1234’; GRANTREPLICATION SLAVE ON *.* TO ‘backup’@'10.10.8.112' IDENTIFIED BY ‘1234’; 赋予10.10.8.112也就是Slave机器有File权限,只赋予Slave机器有File权限还不行,还要给它REPLICATION SLAVE的权限才可以。 、增加一个数据库作为同步数据库: create database test; 、创建一个表结构: create table mytest (username varchar(20),password varchar(20)); 、修改配置文件: 修改A的/etc/my.cnf文件,在my.cnf配置项中加入下面配置: server-id = 1 #Server标识 log-bin binlog-do-db=test #指定需要日志的数据库 、重起数据库服务: service mysqld restart 查看server-id: show variable like ‘server_id’; 实例: mysql> show variables like 'server_id'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | server_id | 1 | +---------------+-------+ 1 row in set (0.00 sec) 、用show master status/G命令看日志情况。 正常为: mysql> show master status/G *************************** 1. row *************************** File: mysqld-bin.000002 Position: 198 Binlog_Do_DB: test,test Binlog_Ignore_DB: 1 row in set (0.08 sec) 3.2.2 配置B 为slave 、增加一个数据库作为同步数据库: create database test; 、创建一个表结构: create table mytest (username varchar(20),password varchar(20)); 、修改配置文件: 修改B的/etc/my.cnf文件,在my.cnf配置项中加入下面配置: server-id=2 master-host=10.10. 0.119 master-user=backup #同步用户帐号 master-password=1234 master-port=3306 master-connect-retry=60 #预设重试间隔秒 replicate-do-db=test #告诉slave只做backup数据库的更新 、重起数据库服务: service mysqld restart 查看server-id: show variables like ‘server_id’; 实例: mysql> show variables like 'server_id'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | server_id | 2 | +---------------+-------+ 1 row in set (0.00 sec) 、用show slave status/G命令看日志情况。 正常为: mysql> show slave status/G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 10.10.0.119 Master_User: backup Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysqld-bin.000001 Read_Master_Log_Pos: 98 Relay_Log_File: mysqld-relay-bin.000003 Relay_Log_Pos: 236 Relay_Master_Log_File: mysqld-bin.000001 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB: test,test Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0 Last_Error: Skip_Counter: 0 Exec_Master_Log_Pos: 98 Relay_Log_Space: 236 Until_Condition: None Until_Log_File: Until_Log_Pos: 0 Master_SSL_Allowed: No Master_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: 0 1 row in set (0.01 sec) 3.2.3 验证配置 分别使用insert, delete , update在A主机进行增删改查数据库;查看B主机的数据库是否与A主机一致;若一致,则配置成功。 3.3双机互备模式 如果在A主机加入slave设置,在B主机加入master设置,则可以做B->A的同步。 、在A主机的配置文件中 mysqld配置项加入以下设置: master-host=10.10.8.112 master-user=backup master-password=1234 replicate-do-db=test master-connect-retry=10 、在B的配置文件中 mysqld配置项加入以下设置: log-bin binlog-do-db=test 注意:当有错误产生时,*.err日志文件同步的线程退出,当纠正错误后,要让同步机制进行工作,运行slave start。 重起A、B机器,则可以实现双向的热备份。 四、 常见问题及解决 、Slave机器的权限问题,不但要给slave机器File权限,还要给它REPLICATION SLAVE的权限。 、在修改完Slave机器/etc/my.cnf之后,slave机器的mysql服务启动之前,记得要删除掉master.info 、在show master status或着show slave status不正常时,看看.err是怎样说的。 、Slave上Mysql的Replication工作有两个线程, I/O thread和SQL thread。I/O的作用是从 master 3306端口上把它的binlog取过来(master在被修改了任何内容之后,就会把修改了什么写到自己的binlog等待slave更 新),然后写到本地的relay-log,而SQL thread则是去读本地的relay-log,再把它转换成本Mysql所能理解的语句,于是同步 就这样一步一步的完成.决定I/O thread的是/var/lib/mysql/master.info,而决定SQL thread的是/var /lib/mysql/relay-log.info. 、启动slave,命令用start slave;重新启动用restart slave

两个mysql主从同步_如何配置两个MySQL数据库之间的主从同步功能相关推荐

  1. mysql5.5集群数据同步_[转]配置mysql5.5主从复制数据库集群

    一.安装MySQL 说明:在两台MySQL服务器192.168.21.169和192.168.21.168上分别进行如下操作,安装MySQL 5.5.22 二.配置MySQL主服务器(192.168. ...

  2. MySql免安装版安装配置,附MySQL服务无法启动解决方案

    MySql免安装版安装配置,附MySQL服务无法启动解决方案 参考文章: (1)MySql免安装版安装配置,附MySQL服务无法启动解决方案 (2)https://www.cnblogs.com/jp ...

  3. sqlserver如何实现多个数据库之间的实时同步?

    SyncNavigator v8.6.2 SyncNavigator是一款功能强大的数据库同步软件,适用于SQL SERVER, MySQL,具有自动/定时同步数据.无人值守.故障自动恢复.同构/异构 ...

  4. 如何实现Oracle数据库之间的数据同步?

    我们都知道,在Oracle数据库的管理与开发工作中,总会存在着一些表数据和基础资料数据,这时需要有效的将这些数据库进行同步合并,有没有什么简单的方法可以实现Oracle数据库之间的数据同步呢?在此诚恺 ...

  5. windows下mysql主从同步_详解windows下mysql的主从同步

    半路出家到Java,刚开始听说到说程序支持读写分离感觉特别高大上,也一直没接触 偶然的机会接触到了,就一定得记下来. 今天先讲讲数据库的主从同步,两个好处: 是读写分离可以用上.比如 写操作就写到主数 ...

  6. mysql双击同步_求助,WINDOWS下MYSQL双机同步的问题

    展开全部 1.1 环境搭建 准备两台Windows NT 主机,分别安装好iKEY Server windows 版本,确定版本无误,确保e5a48de588b662616964757a6869646 ...

  7. mysql long类型_怒肝两个月MySQL源码,我总结出这篇2W字的MySQL协议详解(超硬核干货)!!...

    点击上方蓝色"冰河技术",关注并选择"设为星标" 持之以恒,贵在坚持,每天进步一点点! 作者个人研发的在高并发场景下,提供的简单.稳定.可扩展的延迟消息队列框架 ...

  8. drupal mysql配置_安装配置Apache+php+mysql+drupal

    安装好apache(按前述配置能正常访问本机网站)后,并安装好php和mysql 下载软件:httpd-2.2.22-win32-x86-no_ssl.msi/php-5.2.17-Win32-VC6 ...

  9. mysql链接出错_请配置/amysql/config.php文件_MySQL数据库之PHP连接mysql时mysql_connect()函数不可用...

    本文主要向大家介绍了MySQL数据库之PHP连接mysql时mysql_connect()函数不可用 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 我在搭建环境时也没有再安装m ...

最新文章

  1. 三代测序原理与数据文件简介(SMRT+Nanopore)
  2. python队列线程池_实例详解:python高级编程之消息队列(Queue)与进程池(Pool)
  3. html页面和Chrome开发者工具elements界面不一致的一个可能原因:没有在Chrome开发者工具里打开对Shadow DOM显示的支持
  4. C++ 中关于optional 使用过程中遇到的问题
  5. linux数字雨代码解释,linux提权 漏洞合集 linux-kernel-exploits
  6. PyQt4--QPushButton(click)类的信号
  7. 计算机对财务管理专业的影响,计算机及网络对财务管理的影响
  8. php区块链开发游戏,php程序员如何开发区块链、以太坊、智能合约的教程
  9. 【PTA 7-9】剥洋葱
  10. 跟零计算机基础的房东女儿讲了一下午的中间人劫持京东事件后,她感激涕零,决定给我免除房租...
  11. 牛逼顿的一生:当智商高到一定程度,情商就不重要了
  12. 护眼灯色温多少k最合适?2023儿童护眼灯色温范围是多少
  13. ES1J-ASEMI超快恢复二极管ES1J
  14. java程序员i5 i7_买电脑选择i5还是i7?很多人被忽悠了,专业人士说出了3点实话!...
  15. H.264 入门篇 - 00 (简介)
  16. flash制作打地鼠游戏代码,打地鼠游戏编程代码
  17. 【SpringBoot】43、SpringBoot中整合RabbitMQ实现延时队列(延时插件篇)
  18. php取名字的姓,姓名拆分为姓氏和名字的方法[php版]
  19. jupyter解压缩文件
  20. 让你的电脑运行飞快 鼠标右键菜单清理

热门文章

  1. 关于python+django操作数据库中的表
  2. ubuntu mysql主从库的搭建
  3. ASP.NET 防止F5刷新页面按钮重复提交
  4. 多线程并发思考--文件加锁
  5. [转载] python| map()函数应用详解
  6. [转载] 如何用 PyQt5 快速构建一个简单的 GUI 应用
  7. Dijkstra求最短路径例题
  8. 保存画面为图片 当前MFC保存该程序为图片 c++ vc
  9. silverlight项目工作小结
  10. ruby笔记 基于对象的类(object specific class)