这里以mariadb为例,和mysql一样的配置

系统:centos7

主服务器:192.168.0.1:3305(两台服务器都做过时间同步)

从服务器:192.168.0.2:3306(两台服务器都做过时间同步)

同步的库表:testadmin库下的user表和order表

*安装mariadb

 #卸载旧数据库
yum remove mysql mysql-server mysql-libs compat-mysql51
#添加mariadb源
vi /etc/yum.repos.d/MariaDB.repo
[mariadb]
name = MariaDB
baseurl = https://mirrors.ustc.edu.cn/mariadb/yum/10.1/centos7-amd64/
gpgkey=https://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1
rpm --import https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
#安装mariadb
yum -y install MariaDB-server MariaDB-client
#启动
systemctl start mariadb

*设置数据库密码和远程登录

#root密码为123456
mysqladmin -u root password 123456
#设置远程登录
mysql -uroot -p123456
>grant all on *.* to root@'%' identified by '' with grant option;
>flush privileges;

*主服务器(192.168.0.1)

[mysqld]
port=3305 #这里的端口如果不是默认的3306,那么在从服务器上执行的命令就会加上master_port=3305
bind-address=0.0.0.0
server-id=1 #设置优先级,主必须小于从
log-bin=mysql-bin
log-slave-updates=true
#重启
systemctl restart mariadb
#配置连接从服务器,连接的用户是test,密码为123
mysql -uroot -p123456
>grant replication client,replication slave on *.* to test@'192.168.0.2' identified by ''; #这里地址可以写成192.168.0.%,表示这个网段的从数据库都可以连接到
>flush privileges;
>show master status; #记下file和Position,下面从服务器配置需要,例如mysql-bin.000006  600

*从服务器(192.168.0.2)

[mysqld]
bind-address=0.0.0.0
server-id=2
relay-log=relay-bin
#需要同步的表
replicate-wild-do-table = testadmin.user
replicate-wild-do-table = testadmin.order
#重启
systemctl restart mariadb
#配置连接主服务器
mysql -uroot -p123456
>change master to master_host='192.168.0.1',master_user='test',master_password='',master_port=3305,MASTER_LOG_FILE='mysql-bin.000006',MASTER_LOG_POS=600; #一般默认是3306,可以不写这个端口配置,只是遇到特殊情况就需要加上master_port
>flush privileges;

*验证

#从服务器上
mysql -uroot -p123456
>start slave; #若要重新设置连接,必须要先停掉stop slave
>show slave status \G;
.
.
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
.
.
#表示连接成功
#然后再到主数据库指定库里操作指定表,从数据库上的表也会跟着改变,但是如果修改其他未指定的库或者表,从数据库上并不会同步修改,当然,如果是直接在从数据库上修改任何表,主数据库并不会有任何变化

*其他操作

#如果同步出现某个错误,但是想要忽略当前这个错误,那么执行
stop slave;
set global sql_slave_skip_counter=;
start slave; #如果想要一直忽略某种错误,就更新这样的配置并重启
[mysqld]
slave_skip_errors = ,, #表示忽略code为1062、1032和1049的错误

mysql主从复制之同步部分库表的更多相关文章

  1. mysql主从只同步部分库或表

    同步部分数据有两个思路,1.master只发送需要的:2.slave只接收想要的. master端: binlog-do-db      二进制日志记录的数据库(多数据库用逗号,隔开)binlog-i ...

  2. MySQL系列详解六:MySQL主从复制/半同步演示-技术流ken

    前言 随着技术的发展,在实际的生产环境中,由单台MySQL数据库服务器不能满足实际的需求.此时数据库集群就很好的解决了这个问题了.采用MySQL分布式集群,能够搭建一个高并发.负载均衡的集群服务器.在 ...

  3. Linux下 MYSQL 主从复制、同步

    mysql从3.23.15版本以后提供数据库复制功能.利用该功能可以实现两个数据库同步,主从模式(A->B),互相备份模式(A<=>B)的功能. 主从模式(A->B)的配置过程 ...

  4. MySQL主从复制半同步复制原理及搭建

    在MySQL5.5之前的版本中,MySQL的复制是异步复制,主库和从库的数据之间存在一定的延迟,比如网络故障等各种原因,这样子容易存在隐患就是:当在主库写入一个事务成功后并提交了,但是由于从库延迟没有 ...

  5. MySQL 手动主从同步不锁表

    有时候MySQL主从同步不一致比较严重的时候,需要手动同步. 然而网上看大很多需要锁表的同步的方法基本如下 1.先对主库锁表 FLUSH TABLES WITH READ LOCK; 2.备份数据 m ...

  6. Mysql-5.5版本搭建实例的部分库的从库

    由于业务需要在Mysql实例中创建部分库的从库,已有的Mysql实例的版本是mysql-5.5.49,是一个非常老的版本. 本文档涉及到服务器中运行多实例和构建实例中部分库的从库. 服务器 mysql ...

  7. 重新学习Mysql数据13:Mysql主从复制,读写分离,分表分库策略与实践

    一.MySQL扩展具体的实现方式 随着业务规模的不断扩大,需要选择合适的方案去应对数据规模的增长,以应对逐渐增长的访问压力和数据量. 关于数据库的扩展主要包括:业务拆分.主从复制.读写分离.数据库分库 ...

  8. MySQL主从复制&读写分离&分库分表

    MySQL主从复制 MySQL的主从复制只能保证主机对外提供服务,从机是不提供服务的,只是在后台为主机进行备份数据 首先我们说说主从复制的原理,这个是必须要理解的玩意儿: 理解: MySQL之间的数据 ...

  9. mysql主从读写分离,分库分表

    1.分表 当项目上线后,数据将会几何级的增长,当数据很多的时候,读取性能将会下降,更新表数据的时候也需要更新索引,所以我们需要分表,当数据量再大的时候就需要分库了. a.水平拆分:数据分成多个表 b. ...

随机推荐

  1. mongodb 学习资料

    1 入门 http://www.cnblogs.com/huangxincheng/archive/2012/02/18/2356595.html http://www.cnblogs.com/hoo ...

  2. [转]JS中apply和call的联系和区别

    JS中有时常用到 apply 和 call 两个方法,搜索网上很多,整理如下,简单看看这两个联系和区别, 联系: 网上查到关于apply和call的定义:这两个方法都能劫持另外一个对象的方法,继承另外 ...

  3. debian上安装codeblocks

    1.查看linux的版本uname -a 2.在官网上下载稳定版的codeblocks(www.codeblocks.org) 3.解压codeblocks后,进入到文件夹中用root身份执行dpkg ...

  4. Log4Net日志记录介绍

    原文地址 : http://www.cnblogs.com/wolf-sun/p/3347373.html#3009010 简介 log4net库是Apache log4j框架在Microsoft . ...

  5. HDOJ5438(图的各个连通分量遍历)

    #include<cstdio> #include<cstring> using namespace std; ; template<class T> struct ...

  6. Python模块-requests(一)

    requests不是python自带的,使用前需要安装 发送请求 HTTP请求类型有GET,POST,PUT,DELETE,HEAD和OPTIONS 使用requests发送请求的方法如下: > ...

  7. springMVC绑定json参数之一

    一.SpringMVC @RequestBody接收Json对象字符串 以前,一直以为在SpringMVC环境中,@RequestBody接收的是一个Json对象,一直在调试代码都没有成功,后来发现, ...

  8. shell入门-grep过滤-1

    正则表达式,就是一个字符串.有一定的规律.我们用指定的字符串匹配一个指定的行.指定的字符串就是正则表达式. 正则表达式有这几个工具:grep egrep sed awk 命令:gerep 说明:过滤出 ...

  9. 基于MapReduce的矩阵乘法

    参考:http://blog.csdn.net/xyilu/article/details/9066973文章 文字未得及得总结,明天再写文字,先贴代码 package matrix; import ...

  10. idea调试SpringMvc, 出现:”Can't find catalina.jar"错误的解决方法

    用gradle构建的项目,点击运行出现以下错误提示: Error running PraticeWeb: Can't find catalina.jar 21:54 Error running Pra ...