开发者社区> 科技小能手> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

MySql 数据同步

简介:
+关注继续查看

设置 MySql 数据同步


mysql从3.23.15版本以后提供数据库复制功能。利用该功能可以实现两个数据库同步,主从模式,互相备份模式的功能

  数据库同步复制功能的设置都在mysql的设置文件中体现。mysql的配置文件(一般是my.cnf),在unix环境下在/etc/mysql/my.cnf 或者在mysql用户的home目录下的my.cnf。 
window环境中,如果c:根目录下有my.cnf文件则取该配置文件。当运行mysql的winmysqladmin.exe工具时候,该工具会把c:根目录下的my.cnf 命名为mycnf.bak。并在winnt目录下创建my.ini。mysql服务器启动时候会读该配置文件。所以可以把my.cnf中的内容拷贝到my.ini文件中,用my.ini文件作为mysql服务器的配置文件。 
设置方法: 
设置范例环境: 
操作系统:window2000 professional 
mysql:4.0.4-beta-max-nt-log 
A ip:10.10.10.22 
B ip:10.10.10.53 
A:设置 
1.增加一个用户最为同步的用户帐号:

GRANT FILE ON *.* TO backup@'10.10.10.53' IDENTIFIED BY '1234’

2.增加一个数据库作为同步数据库: 
create database backup

B:设置 
1.增加一个用户最为同步的用户帐号: 
GRANT FILE ON *.* TO backup@'10.10.10.22' IDENTIFIED BY '1234’

2.增加一个数据库作为同步数据库: 

create database backup


主从模式:A->B 
A为master 
修改A mysql的my.ini文件。在mysqld配置项中加入下面配置: 

server-id=1log-bin#设置需要记录log 可以设置log-bin=c:mysqlbakmysqllog 设置日志文件的目录,
#其中mysqllog是日志文件的名称,mysql将建立不同扩展名,文件名为mysqllog的几个日志文件。
binlog-do-db=backup #指定需要日志的数据库


重起数据库服务。 
用show master status 命令看日志情况。 
B为slave 
修改B mysql的my.ini文件。在mysqld配置项中加入下面配置: 
 


server-id=2master-host=10.10.10.22master-user=backup 
#同步用户帐号master-password=1234master-port=3306master-connect-retry=60
预设重试间隔60秒replicate-do-db=backup 告诉slave只做backup数据库的更新

重起数据库 
用show slave status看同步配置情况。 
注意:由于设置了slave的配置信息,mysql在数据库目录下生成master.info,所以如有要修改相关slave的配置要先删除该文件。否则修改的配置不能生效。 
双机互备模式。 
如果在A加入slave设置,在B加入master设置,则可以做B->A的同步。 
在A的配置文件中 mysqld 配置项加入以下设置: 

master-host=10.10.10.53master-user=backupmaster-password=1234
replicate-do-db=backupmaster-connect-retry=10

在B的配置文件中 mysqld 配置项加入以下设置: 

log-bin=c:mysqllogmysqllogbinlog-do-db=backup


注意:当有错误产生时*.err日志文件。同步的线程退出,当纠正错误后要让同步机制进行工作,运行slave start 
重起AB机器,则可以实现双向的热备。 
测试: 
向B批量插入大数据量表AA(1872000)条,A数据库每秒钟可以更新2500条数据。

 


本文转自holy2009 51CTO博客,原文链接:http://blog.51cto.com/holy2010/364670



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
mac系统下安装mysql 和phpmyadmin
用惯了在Windows上一个appserv或phpStudy压缩包搞定,要在MAC OSX 10.10上捣腾一个PHP开发环境还不大习惯。但自己亲自配一下环境还是有所收获的。众所周知OSX上自带了apache和php,所以这两个搞起来还比较顺利。
1088 0
Ubuntu下安装mysql与mysql workbench
其他相关链接 Ubuntu 安装jdk:[链接] Ubuntu安装eclipse:[链接] Ubuntu下安装mysql与mysql workbench:[链接] Ubuntu配置tomcat9:[链接] 1.sudo apt-get install mysql-server 安装完成,下面测试一下,输入: mysql -u
1812 0
手把手教你在CentOS 6.8中安装mysql
@(Linux)[centos,mysql,安装] 卸载掉原有mysql 查看该操作系统上是否已经安装了mysql数据库:rpm -qa | grep mysql   若有则卸载:rpm -e mysql  // 普通删除模式 或者:rpm -e --...
1568 0
MySQL在Windows上安装多个实例的方法
MySQL在Windows上安装多个实例的方法 Step 1: 解压MySQL安装包,配置my.ini文件,注意port不能设置为默认的3306,这里我们设置为3307端口: 点击(此处...
852 0
Ubuntu16.04 通过源码编译安装 MySQL 5.7.17
参考: ubuntu16.04 编译安装mysql5.7.x,以及配置使用 http://www.cnblogs.com/xz1024/p/5802637.html MySQL root密码重置报错:mysqladmin: connect to server at ‘localhost’ failed的解决方案! http://blog.
1618 0
在ubuntu Mysql 5.7 安装InnoDB Memcached 插件
在ubuntu Mysql 5.7 安装Memcached 插件 参考:https://dev.mysql.com/doc/refman/5.7/en/innodb-memcached-setup.
1087 0
腾讯云服务器安装mysql
ubuntu16.04上安装mysql非常简单只需要几条命令就可以完成。 先更新源sudo apt-get update sudo apt-get install mysql-server 安装过程中遇到Y/N 时都选Y  在安装过程中需要你输入MyS...
1466 0
23703
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载