`

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' } ...

    搭建MySQL的MasterSlave架构

    以下是如何在Windows环境下搭建MySQL5.0.22的Master-Slave架构的详细步骤: 1. **安装MySQL服务** - 首先,你需要从MySQL官方网站下载适合的操作系统版本,例如5.0.22。 - 按照标准的安装向导进行安装,并配置好...

    mysql5.5 master-slave(Replication)主从配置

    ### MySQL 5.5 Master-Slave (Replication) 主从配置详解 #### 一、基础知识概述 在MySQL中,**主从复制(Master-Slave Replication)**是一种非常重要的数据备份方式,通过它可以在多台服务器之间实现数据的同步...

    sharding-jdbc-master-slave.zip

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

    构建高性能web之路------mysql读写分离实战.pdf

    搭建 MySQL 的 Master-Slave 环境 本实战中采用两台主机来搭建Master-Slave环境,其中Master节点负责写入操作,而Slave节点则用于处理读取操作。 - **步骤1**:在两台主机(host1和host2)上安装MySQL(版本为...

    MYSQL-企业整合解决方案之mysql集群搭建-主从配置.docx

    MYSQL-企业整合解决方案之mysql集群搭建-主从配置 本资源主要介绍了MYSQL企业整合解决方案中的mysql集群搭建-主从配置的实现过程,涵盖了主从复制的原理、配置信息、搭建步骤等方面的知识点。 一、主从复制原理 ...

    MySQL Master Slave构架 spring3 整合

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

    构建高性能web之路mysql读写分离实战

    要搭建MySQL读写分离环境,需要安装和配置master和slave服务器。master服务器负责写操作,而slave服务器负责读操作。同时,需要配置Amoeba框架,以管理数据库的读写操作。 知识点5:配置Master服务器 要配置master...

    Linux下Mysql二进制安装及主从搭建文档

    CHANGE MASTER TO MASTER_HOST='master_ip', MASTER_USER='repl_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=position; ``` (用主服务器的实际IP地址替换'master_...

    mysql读写分离实现

    在搭建MySQL读写分离环境中,首先需要创建一个Master-Slave复制环境,这样可以从Master节点实时同步数据到Slave节点,从而实现数据的冗余备份,并为后续的读写分离打下基础。 **2.1.1 配置Master** 1. **安装MySQL...

    mysql 主从复制环境搭建

    MySQL 主从复制环境搭建 MySQL 是一个轻量级的开源框架,具有速度快、多线程、多用户和跨平台等特点。MySQL 主从复制是指将一个 MySQL 服务器的数据实时同步到另一个 MySQL 服务器上,通常用于提高数据安全、负载...

    mysql主从互备实战

    为了提高数据库系统的可靠性和响应速度,许多企业会采用MySQL主从互备(Master-Slave Mutual Backup)方案。这种架构不仅可以实现实时的数据备份,还能在主服务器出现故障时迅速切换至备用服务器,从而减少服务中断...

    mysql replication搭建.docx

    MySQL Replication 是一种数据复制机制,它允许将一个MySQL服务器(主服务器或Master)的数据异步复制到一个或多个其他MySQL服务器(从服务器或Slave)。这种机制主要用于实现数据库负载均衡、提高读取性能以及备份...

    centeros7安装mysql5.7安装文件及基本配置

    现在,你的MySQL 5.7主从复制环境已经搭建完毕。确保监控复制状态,确保数据同步正常进行: ```sql SHOW SLAVE STATUS\G ``` 通过以上步骤,你已经在CentOS 7上成功安装了MySQL 5.7,并配置了主从复制。这将为你...

    mysql-ha-双主安装

    GRANT REPLICATION SLAVE ON *.* TO 'replication'@'slavemachineip' IDENTIFIED BY 'slave'; ``` **2. 修改配置文件:** - 需要在两个数据库中修改或增加以下配置: ```ini [replication] master-host=...

    mysql-5.7主从复制搭建资源包

    在搭建主从复制之前,首先需要在每个服务器上安装MySQL 5.7。这通常涉及下载安装包,运行安装程序,配置必要的系统服务,并设置MySQL的初始用户和密码。 **3. 配置主服务器** 在主服务器上,需要配置二进制日志,...

    MySQL单主库多继承从库数据备份测试

    CHANGE MASTER TO MASTER_HOST='172.17.0.10', MASTER_USER='slave', MASTER_PASSWORD='slave', MASTER_LOG_FILE='mysql-bin.000004', MASTER_LOG_POS=3748; START SLAVE; ``` #### 测试验证 - **查看复制状态**...

Global site tag (gtag.js) - Google Analytics