`

MySQL简单的Master-Slave搭建

阅读更多
我是照着《MySQL性能调优与架构设计》这本书上做的,过程中遇到些小问题,上网搜索了些资料,终于搭建成功:
一共4个步骤:
1、做好master端的准备工作:
首先开启master的log-bin,在my.cnf中配置:log-bin=path for binary log
等号以及后面的路径是可选的,默认路径为mysql的数据路径,即datadir,datadir可以在my.cnf中找到。
接着需要创建一个用于复制的mysql账号:
CREATE USER 'repl'@'ip of slave' IDENTIFIED BY 'password for slave';

然后把REPLICATION SLAVE的权限赋给该账号:
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'ip of slave';

对了,还要在my.cnf中指定一下server-id,我的笔记本archlinux(作为master)中的my.cnf默认有了个server-id=1。而另一台台式机(作为slave)ubuntu中的server-id为空,我给了它一个值2。
2、获取master的快照:
我是通过mysqldump的方式导出数据的:
mysqldump --master-data -u root -p database_name table_name > snapshot.sql

如果要导出整个数据库,可以不指定table_name。
这里有个--single-transaction选项书上的说明是:
引用
为了让备份集具有一致性和完整性,我们必须确保dump数据的这个过程处于同一个事务中,或者锁住所有需要复制的表的写操作。如果所使用的是支持事务的存储引擎(如InnoDB),可以在执行mysqldump程序的时候通过添加--single-transaction选项,但是如果存储引擎并不支持事务,或者需要dump的表只有部分支持事务时,就只能先通过FLUSH TABLES WITH READ LOCK命令来暂停所有写入服务,然后再dump数据了。

3、slave端恢复快照:
先把刚才的snapshot.sql复制到slave端,然后把该文件中的CHANGE MASTER TO那一行注释掉(别删除掉,该信息还有用),保存后执行:
mysql -u root -p -Ddatabase_name < snapshot.sql
即可。
4、配置并启动slave:
CHANGE MASTER TO MASTER_HOST='master ip',MASTER_USER='repl',MASTER_PASSWORD='password',MASTER_LOG_FILE='xxx-bin.xxx',MASTER_LOG_POS=xxx;

这里的LOG_FILE和LOG_POS信息就在刚才注释掉的那一行代码中。另外还有一种办法可以查询LOG_FILE和LOG_POS:在master的mysql console中执行show master status;

启动:
start slave;


如果想让多台slave用同一个账号和密码连接到master,可以在创建replication账号时把具体的ip换成百分号(%)。

我第一次在连接master的时候发现连接不上,数据并没有同步过来,直接使用mysql -u repl -p -h master_ip来连接master的时候报错:
引用
ERROR 2013(HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0

搜索到这个链接:http://www.linuxsir.org/bbs/thread323110.html
zlowly 写道
那就应该是Tcpwarpper阻挡了,编辑/etc/hosts.allow,加上这两行
mysqld: 127.0.0.1
mysqld: 192.168.1.20

问题解决。

指定replicate某1个或n个数据库:

在slave端my.cnf文件的[mysqld]中加上:
set-variable=replicate-do-db=dbname1
set-variable=replicate-do-db=dbname2

replicate时过滤指定的数据库:
set-variable=replicate-ignore-db=dbname
分享到:
评论

相关推荐

    docker-mysql-master-slave-master.zip

    此资源为shardingsphere 调研...内容:一个master mysql docker实例,一个slave docker实例 内置3个库,mydb,mydb0,mydb1。仅开启了这三个库的主从。如果三个库主从不够用,自行配置。 使用:1.解压 2.执行build.sh

    joeywang310#mysql-master-slave#Mysql主从复制集群搭建-基于DockerCompose1

    如:1062错误是指一些主键重复,1032错误是因为主从数据库数据不一致slave mysql容器配置配置Dockerfile设置server_id,一般设置为

    mysql-master-slave

    npm install mysql-master-slave 使用示例: var cluster = require('mysql-master-slave'); var opts = { connectionLimit : 10, user: 'your-user', password: 'your-password', database: 'sampledb' } ...

    sharding-jdbc-master-slave.zip

    Sharding-JDBC教程:Spring Boot2.0以上整合Sharding-JDBC实现分库分表+读写分离,Mysql数据库主从搭建:https://blog.csdn.net/forezp/article/details/94173427

    搭建MySQL的MasterSlave架构

    MySQL的Master Slave架构,手把手教你怎么操作,每一步操作都带有图

    Mybatis 多数据源配置说明.docx

    Mybatis 多数据源配置说明: 同一个项目有时会涉及到多个数据库,也就是多...2)两个或多个数据库是master-slave的关系,比如有mysql搭建一个 master-master,其后又带有多个slave;或者采用MHA搭建的master-slave复制;

    MySQL Master Slave构架 spring3 整合

    里面实现的是动态切换数据源,大家都是知道,spring2之后添加AbstractRoutingDataSource这个东西,这个就可以实现切换数据源,实现思路是:先按照搭建MySQL的MasterSlave架构.doc&gt;&gt;(我上传有资源),搭建好,然后动态...

    新版 MySQL DBA 高级视频 基于MySQL 5.7 MySQL 8.0版本.rar

    ├─新版MySQL DBA 课件ppt │ 第一课数据库介绍篇.pdf │ 第七课MySQL数据库设计.pdf │ 第三十一课percona-toolkits 的实战及自动化.pdf │ 第三课MySQL授权认证.pdf ...│ mysql-master-05-25_11-10-39.log

    如何快速使用mysqlreplicate搭建MySQL主从

    mysql-utilities工具集是一个集中了多种工具的合集,可以理解为是DBA的工具箱,本文介绍利用其中的mysqlreplicate工具来快速搭建MySQL主从环境。 HE1:192.168.1.248 slave HE3:192.168.1.250 master 实战 Part1:安装...

    利用MySQL Cluster 7.0 + LVS 搭建高可用环境

    以前我们的大部分高可用方案其实还存在一定缺陷,例如 MySQL Replication 方案,Master 是否存活检测需要一定时间,而和 Slave 的切换也需要时间,因此其高可用程度较大依赖监控软件或自动化管理工具。而早先的 ...

    运维之道 | Zabbix监控mysql主从同步状态并设置触发微信告警

    二、MySQL数据库主从搭建 1、关闭防火墙(主从库均需关闭) [root@master ~]# systemctl stop firewalld [root@master ~]# setenforce 0 2、删除系统自带mysql配置文件(主从库均需删除) [root@master ~]# yum ...

    详解MySQL主从复制读写分离搭建

    master 和 slave设置的差不多: [mysqld] log-bin=mysql-bin server-id=222 log-bin=mysql-bin的意思是:启用二进制日志。 server-id=222的意思是设置了服务器的唯一ID,默认是1,一般取IP最后一段,可以写成别的...

    MySQL数据库的主从同步配置与读写分离

    使用mysql主从复制的好处有: 1、采用主从服务器这种架构,稳定性得以提升。...从服务器(mysql-slave):IP地址:192.168.48.130,mysql已安装,没有用户数据。 主从服务器均可正常提供服务。 配置主服务器(master

    MySQL Group Replication 搭建.docx

    本资源详细描述MySQL MGR搭建的过程,每一步都演示步骤及slave 或 master 宕机测试,及恢复后如何重新加入组,绝对一次成功

    MySQL 主从复制搭建,基于日志(binlog)

     简单来说,是保证主SQL(Master)和从SQL(Slave)的数据是一致性的,向Master插入数据后,Slave会自动从Master把修改的数据同步过来(有一定的延迟),通过这种方式来保证数据的一致性,是主从复制。  MySQL...

    mysql角色服务器,用于实现数据库主从复制,mysql集群搭建所用服务器

    主库Master:主要进行的是数据的"更新操作" 从库Slave: 实时备份主库的更新信息 二进制日志: 实时记录主库的更新操作,并且形式二进制码. 中继日志: 保存主库的更新信息 调用原理 1.当主库更新数据后,会实时的写入到...

    MySQL管理之道 性能调优、高可用与监控.part2.rar

    以最新的mysql版本为基础,以构建高性能mysql服务器为核心,从故障诊断、表设计、sql优化、性能参数调优、mydumper逻辑、xtrabackup热备份与恢复、mysql高可用集群搭建与管理、mysql服务器性能和服务监控等方面多...

    mysql 5.7 docker 主从复制架构搭建教程

    分享mysql 5.7 docker 主从复制架构搭建教程,供大家参考,具体内容如下 环境版本: MySQL : 5.7.13 Docker : 1.11.2 CentOS : 7.1  1.先在两个物理机上分别安装两个MySQL.命令如下  代码如下:docker pull ...

    mysql 数据同步 出现Slave_IO_Running:No问题的解决方法小结

    如果是slave_io_running no了,那么就我个人看有三种情况,一个是网络有问题,连接不上,像有一次我用虚拟机搭建replication,使用了nat的网络结构,就是死都连不上,第二个是有可能my.cnf有问题,配置文件怎么写就...

    从零开始搭建MySQL MMM架构

    云平台是个好东西,MySQL-mmm的典型配置是需要五台机器,一台作为mmm admin,两台master,两台slave。一下子找五台机器真不容易,何况还要安装同样的操作系统。而有了cloud,简单几步就有了完备的实验环境:四台...

Global site tag (gtag.js) - Google Analytics