MySQL的双机热备份(一)--MySQL的主从复制

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

MySQL的主从复制

   在这里分两个情况:1、两台服务器中都没有数据 2、主服务器上已经有数据,此时再开启从服务器
      一、两台服务器中都没有数据
   在复制结构中从服务器的mysql的版本要比主服务器的一样或者高也行。

1、修改配置文件:
在主服务器上
  修改/etc/my.cnf文件(配置文件所在由自己在安装时指定,不一定都在这个路径下 =。=)
vim /etc/my.cnf 
/修改: 
server-id = 1 (默认是1) 
开启二进制日志定位到:log-bin 
log-bin=mysql-bin 这个也是默认开启的 
修改完成后重新启动mysql服务 
# service mysqld restart

连接到mysql数据库创建用户并赋于复制的权限
mysql>GRANT REPLICATION CLIENT,REPLICATION SLAVE ON *.* TO repl@'172.16.%.%' IDENTIFIED BY '123456';

2、在从服务器上
vim /etc/my.cnf 
修改:    
servier-id = 11   ## id号一定不能与主服务器的id号相同
关掉二进制日志 
#log-bin=mysql-bin 
添加如下内容:   ##这些是开启中继日志的
relay-log=relay-bin 
relay-log-index=relay-bin.index 
修改完成后重启一下服务 
# service mysqld restart
好了,配置文件修改完成了。

3、在主从服务器上各自清空一下日志,也是同时用命令:
在主服务器上:mysql>flush master;
在从服务器上:mysql> flush slave;

这样做要使主从服务器的日志位于同一个结点,否则这样会易出错。

4、清空日志后就可以在从服务器上连接到主服务器上了
mysql>    CHANGE MASTER TO MASTER_HOST='172.16.35.1',MASTER_USER='repl',MASTER_PASSWORD='123456';

用命令:mysql> show slave status\G 来查看一下是否已经连接上
如果出现以下结果表明连接成功,则连接失败。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

失败的原因有多种:
最常见的情况分别是:
1、在主服务器上的用户可能出错
2、没有重新滚动一下主从服务器的日志,在连接前有必要重新滚动一下。
下面就可以测试了。
在主服务器上创建或者删除数据库、表,就可以同步到从服务器上了。
在从服务器上也可以查看到从服务器要比主服务器慢多少时间用命令:
mysql> show slave status\G
定位到:Second_Behind_Master:0 (0,表示时间说明没有延迟)

下面来介绍一下较常见的情况
 二、主服务器上已经有数据,此时再开启从服务器

1   在开启从服务器之前要先把主服务器上的数据导入从服务器中。所以要先备份一下主服务器上的数据
# mysqldump --all-databases -- lock-all-tables --master-data=2 > /tmp/slave.sql

2、将备份复制到从服务器中
# scp /tmp/slave.sql 172.16.35.2:/tmp/


3、在从服务器上,把备份导入服务器中
mysql> source /tmp/slave.sql
4、下面就可以连接了,但是在连接之前要先查看备份的文件
用命令head来查看
# head -30 /tmp/slave.sql ##查看前30行的 
有一行是: 
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=279; 
说明要备份的位置是:MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=279 
所以在连接之前一定要说明这个位置

5、下面来开始在从服务器上连接主服务器
mysql>CHANGE MASTER TO MASTER_HOST='172.16.35.1',MASTER_USER='repl',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=279; 
返回的结果:Query OK, 0 rows affected (0.02 sec) 
说明连接成功

6、下面就可以启动从服务器了
mysql>start slave; 
mysql>show slave status\G     ##查看从服务器的状态是否连接成功 
如下所示说明成功连接: 
Slave_IO_Running: Yes 
Slave_SQL_Running: Yes

mysql>start slave;
mysql>show slave status\G ##查看从服务器的状态是否连接成功
如下所示说明成功连接:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

最后再来测试一下。  在主服务器上创建或者删除数据库、表,就可以同步到从服务器上了。 
 MySQL的主从复制是MySqL双机热备份的比较常用的方法。但是从服务器不能有写操作。不过,还有一种备份方式主--主复制,也是双机热备份的一种方法,将在下篇博文介绍。
  如果有什么不正确的地方还请指出,以便尽快的更改。谢谢

本文转自 ZhouLS 51CTO博客,原文链接:http://blog.51cto.com/zhou123/834821

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
27天前
|
SQL 存储 关系型数据库
MySQL的主从复制&主从同步
MySQL的主从复制&主从同步
28 0
|
3月前
|
关系型数据库 MySQL 数据库
rds备份与恢复
rds备份与恢复
53 3
|
3月前
|
关系型数据库 MySQL 数据库
Python tk dos命令备份mysql数据库
Python tk dos命令备份mysql数据库
23 0
|
3月前
|
存储 关系型数据库 MySQL
mysql数据库如何做到定期备份
mysql数据库如何做到定期备份
287 2
|
2月前
|
SQL 关系型数据库 MySQL
mysql怎么备份
mysql怎么备份
185 7
|
7天前
|
负载均衡 容灾 关系型数据库
mysql主从复制
mysql主从复制
23 1
|
24天前
|
SQL 存储 运维
MySQL高可用性:主从复制和集群
MySQL高可用性:主从复制和集群
32 0
|
1月前
|
SQL 网络协议 关系型数据库
【怒怼大厂面试官】听说你精通MySQL?来说说MySQL主从复制
面试官:MySQL主从复制了解吧?嗯嗯了解的。主要是利用了MySQL的Binary Log二进制文件。那我把二进制文件丢给从库,从库复制整个文件吗。噢噢不是的。
47 1
【怒怼大厂面试官】听说你精通MySQL?来说说MySQL主从复制
|
1月前
|
监控 负载均衡 关系型数据库
|
2月前
|
关系型数据库 MySQL Linux
Linux环境下定时备份mysql数据库
Linux环境下定时备份mysql数据库