Linux下 MYSQL 主从复制、同步
mysql从3.23.15版本以后提供数据库复制功能。利用该功能可以实现两个数据库同步,主从模式(A->B),互相备份模式(A<=>B)的功能。
主从模式(A->B)的配置过程:
假设数据库A为主机、B为从机:
A机器:
IP = 192.168.1.101
B机器:
IP = 192.168.1.102
为了方便测试,分别在主机A、从机B,MYSQL中添加以下数据库以及表:
主机A中:
CREATE DATABASE backup_db;
USE backup_db;
CREATE TABLE `backup_table` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(20) character set utf8 NOT NULL,
`sex` varchar(2) character set utf8 NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
从机B中:
CREATE DATABASE backup_db; USE backup_db; CREATE TABLE `backup_table` ( `id` int(11) NOT NULL auto_increment, `name` varchar(20) character set utf8 NOT NULL, `sex` varchar(2) character set utf8 NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
1, 配置主机A的MYSQL配置文件、Linux下路径一般为:/etc/my.cnf,在配置文件中添加以下内容:
server-id=1
log-bin=/var/lib/mysql/mysqlback.log #同步事件的日志记录文件
binlog-do-db=backup_db #提供数据同步服务的数据库
2, 配置从机B的MYSQL配置文件、Linux下路径一般为:/etc/my.cnf,在配置文件中添加以下内容:
server-id=2
master-host=192.168.1.101 #主机A的地址
master-user=root #主机A提供给B的用户,该用户中需要包括数据库backup_db的权限
master-password=password #访问密码
master-port=3306 #端口,主机的MYSQL端口
master-connect-retry=60 #重试间隔60秒
replicate-do-db=backup_db #同步的数据库
注意:上面的配置,只适应MySQL5.5以前版本的,MySQL5.5以及之后的版本需要如下配置:
需要在从机B的MYSQL命令行执行:
change master to master_host='192.168.1.101', master_user='root', master_password='password';
#master_host='192.168.1.101' 主机A的地址
#master_user='root' 主机A提供给B的用户,该用户中需要包括数据库backup_db的权限
#master_password='password' 访问密码
3, 完成了以上配置之后,将A的mysql数据的权限给B
需要在主机A的MYSQL命令行执行:
grant replication slave on *.* to 'root'@'192.168.1.102' identified by 'password';
#'root'@'192.168..1.102' 从机B的的用户以及地址
#identified by 'passw0rd' 其中 'password'为从机B的密码
4, 重启AB数据库,后:
B机器:
mysql>start slave; #开启主从复制,stop slave; 为关闭主从复制
查看同步配置情况
A机器:
mysql>show master status \G;
B机器:
mysql>show slave status \G;
5, 在主机A数据库表中插入数据,看是否复制到从机B数据库表中,如果发现没有复制过去,可以查看mysql错误日志,根据错误提示调试,直至复制成功。
mysql错误日志的路径可以通过mysql命令查看:
mysql> show variables like 'log_error';
+---------------+--------------------------+
| Variable_name | Value |
+---------------+--------------------------+
| log_error | /var/lib/mysql/mysql.err |
+---------------+--------------------------+
/var/lib/mysql/mysql.err 为mysql错误日志的路径
互相备份模式(A<=>B)的配置,重复上面的1-5步骤即可,不同的是调换AB的主从,即B为主机、A为从机。
Linux下 MYSQL 主从复制、同步的更多相关文章
- Linux下Mysql主从复制(Master-Slave)与读写分离(Amoeba)实践
一.为什么要做Mysql的主从复制(读写分离)?通俗来讲,如果对数据库的读和写都在同一个数据库服务器中操作,业务系统性能会降低.为了提升业务系统性能,优化用户体验,可以通过做主从复制(读写分离)来减轻 ...
- Linux下MySQL主从复制(Binlog)的部署过程
什么是 MySQL 的主从复制 Mysql内建的复制功能是构建大型高性能应用程序的基础, 将Mysql数据分布到多个系统上,这种分布机制是通过将Mysql某一台主机数据复制到其它主机(slaves)上 ...
- Linux下MySQL主从复制(GTID)+读写分离(ProxySQL)-实施笔记
GTID概念: GTID( Global Transaction Identifier)全局事务标识.GTID 是 5.6 版本引入的一个有关于主从复制的重大改进,相对于之前版本基于 Binlog 文 ...
- mysql学习(3)-linux下mysql主从复制
前言:为什么MySQL要做主从复制(读写分离)?通俗来讲,如果对数据库的读和写都在同一个数据库服务器中操作,业务系统性能会降低.为了提升业务系统性能,优化用户体验,可以通过做主从复制(读写分离)来减轻 ...
- Linux下MySQL主从同步配置
Centos6.5 MySQL主从同步 MySQL版本5.6.25 主服务器:centos6.5 IP:192.168.1.101 从服务器:centos6.5 IP:192.168.1.102 一. ...
- linux下mysql主从复制,实现数据库同步
运行环境: 查看linux版本命令:lsb_release -a 主服务器:centos release 6.5 mysql 5.6.10-log IP:172.17.200.25从服务器:cent ...
- linux下mysql主从复制搭建
目标:搭建两台MySQL服务器,一台作为主服务器,一台作为从服务器,实现主从复制 环境: 主数据库: 192.168.1.1 从数据库: 192.168.1.2 mysql安装可参考:https:// ...
- Linux下MySQL主从同步故障:"Slave_SQL_Running:No"的解决方法
故障现象: 进入slave服务器,运行: mysql> show slave status\G ....... Relay_Log_File: loc ...
- linux下mysql基于mycat做主从复制和读写分离之基础篇
Linux下mysql基于mycat实现主从复制和读写分离1.基础设施 两台虚拟机:172.20.79.232(主) 172.20.79.233(从) 1.1软件设施 mysql5.6.39 , my ...
随机推荐
- 使用exec函数将当前的信息输入到文件中
先来看看exec函数: exec函数族 fork创建子进程后执行的是和父进程相同的程序(但有可能执行不同的代码分支),子进程往往要调用一种exec函数以执行另一个程序.当进程调用一种exec函 ...
- 红警2在Y460和win10下运行
1.将电源模式改为高性能模式 2.以WinXP兼容模式运行 3.修改RA2.ini文件 在[Video]下加入以下代码 : AllowHiResModes=yes VideoBackBuffer=no ...
- 367. Valid Perfect Square
原题: 367. Valid Perfect Square 读题: 求一个整数是否为完全平方数,如1,4,9,16,……就是完全平方数,这题主要是运算效率问题 求解方法1:812ms class So ...
- T-SQL编程中的异常处理-异常捕获(try catch)与抛出异常(throw)
本文出处: http://www.cnblogs.com/wy123/p/6743515.html T-SQL编程与应用程序一样,都有异常处理机制,比如异常的捕获与异常的抛出(try catch th ...
- spring使用中ModelAttribute的内容被覆盖
在前台以get方式向后台提交数据: 后台接收: 后台接收参数的时候,由于user里面也有一个属性为id,后台在接收参数的时候,User里面的id会被重新赋值,这是一个大坑.如果后续继续用User来做操 ...
- BOS物流项目第十三天
教学计划 1.Quartz概述 a. Quartz介绍和下载 b. 入门案例 c. Quartz执行流程 d. cron表达式 2.在BOS项目中使用Quartz创建定时任务 3.在BOS项目中使用J ...
- 使用JavaMail发送邮件-no object DCH for MIME type multipart/mixed报错解决
最近需要实现一个使用Spring schedule按一定时间间隔自动触发条件发送邮件的功能,在开发的过程中,是按照先测试能发出text/html文本邮件,然后测试添加附件发送邮件,我碰到的问题是,文本 ...
- 最小齐套回写MO工单组件数量错误 SQL
SELECT * FROM OUT_MO_RES WHERE PEGGED_ID='001201271060'; --5000175080/160_1-MFG0011 SELECT * FROM V_ ...
- 搭建ssm环境
在eclipse下搭建ssm框架. 1.新建maven项目. 2.添加jar包依赖 3.修改web.xml配置文件 <?xml version="1.0" encoding= ...
- logic:equal 标签的使用(转)
<logic:equal name="music" property="distrubute" value="true"> ...