Mysql 多主一从数据备份
时间:2018-12-10
本文章向大家介绍Mysql 多主一从数据备份,主要包括Mysql 多主一从数据备份相关应用实例、知识点总结和注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Mysql 多主一从数据备份
概述
对任何一个数据库的操作都自动应用到另外一个数据库,始终保持两个数据库中的数据一致。
这样做有如下几点好处:
- 可以做灾备,其中一个坏了可以切换到另一个。
- 可以做负载均衡,可以将请求分摊到其中任何一台上,提高网站吞吐量。 对于异地热备,尤其适合灾备。
MySQL 主从复制的方式
1 Master 数据库操作的任何数据库的时候,都会将操作记录写入到biglog日志文件当中
2 Slave 数据库通过网络获取到主数据库的日志文件,写入本地日志系统 ,然后一条条的将数据库事件在数据库中完成
3 Slave 重做中继日志中的事件,将 Master 上的改变反映到它自己的数据库中,所以两端的数据是完全一样的。
环境
操作系统:CentOS
MySQL版本:mysql-5.6.26 (主从两者数据库版本必须保持一致)
Master1 配置
1 开启binlog日志功能
vim /etc/my.cnf
server-id=6
log-bin=mysql-bin
2 重启mysql 登陆并授权
mysql -uroot -p123456
grant replication slave, replication client on *.* to 'repl'@'10.211.55.7' identified by '123456';
ip地址为slave服务器的ip地址
3 查看日志状态
show master status;
Master2 配置
1 开启binlog日志功能
vim /etc/my.cnf
server-id=8
log-bin=mysql-bin
2 重启mysql 登陆并授权
mysql -uroot -p123456
grant replication slave, replication client on *.* to 'repl'@'10.211.55.7' identified by '123456';
ip地址为slave服务器的ip地址
3 查看日志状态
show master status;
Slave 配置
1 修改配置文件 (注意 slave的默认数据库启动的端口必须关闭 service mysql stop)
vim /etc/my.cnf
[mysqld]
binlog-ignore-db=mysql
binlog_format=mixed
expire_logs_days=7
slave_skip_errors=1062
relay_log=mysql-relay-bin
log_slave_updates=1
[mysqld_muliti]
mysqld=/usr/bin/mysqld_safe
mysqladmin=/usr/bin/mysqladmin
user=root
password=123456
[mysqld6]
port=3306
datadir=/home/mysql/data6
pid-file=/home/mysql/data6/mysql.pid
socket=/home/mysql/data6/mysql.sock
user=mysql
server-id=7
[mysqld8]
port=3307
datadir=/home/mysql/data8
pid-file=/home/mysql/data8/mysql.pid
socket=/home/mysql/data8/mysql.sock
user=mysql
server-id=7
2 初始化生成目录
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/home/mysql/data6 &
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/home/mysql/data8 &
3 修改目录权限
chown -R mysql /home/mysql/data6
chown -R mysql /home/mysql/data8
4 启动服务
mysqld_multi --defaults-file=/etc/my.cnf start 6
mysqld_multi --defaults-file=/etc/my.cnf start 8
5 登录测试(并分别做授权)
mysql -P 3306 -S /home/mysql/data6/mysql.sock
mysql> change master to master_host='10.211.55.6', master_user='repl', master_password='123456', master_port=3306, master_log_file='mysql-bin.000001', master_log_pos=120;
mysql> start slave;
mysql -P 3307 -S /home/mysql/data8/mysql.sock
mysql> change master to master_host='10.211.55.8', master_user='repl', master_password='123456', master_port=3306, master_log_file='mysql-bin.000001', master_log_pos=120;
mysql> start slave;
ok 就这样 完成了
- 远控木马上演白利用偷天神技:揭秘假破解工具背后的盗刷暗流
- 设计模式学习(三): 装饰者模式 (附C#实现)
- 浅谈非PE的攻击技巧
- hbase源码系列(十)HLog与日志恢复
- hbase源码系列(六)HMaster启动过程
- 如何写好一篇漏洞报告(国外篇)
- hbase源码系列(八)从Snapshot恢复表
- hbase源码系列(七)Snapshot的过程
- CVE-2017-3085:Adobe Flash泄漏Windows用户凭证
- hbase源码系列(九)StoreFile存储格式
- 如何确定恶意软件是否在自己的电脑中执行过?
- Carbondata源码系列(二)文件格式详解
- 挖洞经验 | 记一次针对Twitter(Periscope)API 的有趣挖洞经历
- 设计模式学习(二): 观察者模式 (C#)
- MySQL 教程
- MySQL 安装
- MySQL 管理与配置
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- mysql order by
- Mysql Join的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- 查看MySQL 元数据
- MySQL 序列 AUTO_INCREMENT
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- MYSQL 函数大全
- MySQL Group By 实例讲解
- MySQL Max()函数实例讲解
- mysql count函数实例
- MYSQL UNION和UNION ALL实例
- MySQL IN 用法
- MySQL between and 实例讲解
- 详解Flask上下文
- C#逐行读取和写入文件
- 使用这些不太常用的 CSS 属性,让我在前端布局效率上,又提高了一个层次!
- CDN缓存的理解
- 二叉树的所有路径
- JavaScript 字符串中的 pad 方法!
- python随机生成经纬度(用于爬虫参数伪造)
- [Go]GO语言实战-gorm获取insert的自增id 和 struct标签不映射到表字段
- 安装vcs
- Mercari数据集——机器学习&深度学习视角
- 查找重复姓名的sql语句
- nginx如何限制并发连接请求数?
- RTSP协议视频平台EasyNVR证书配置界面上传文件地址自动填写错误怎么处理?
- 开发RTSP/RTMP/GB28181/海康SDK/EHome视频融合平台EasyCVR,使用vue-cli3项目搭建多页面模式的方法
- 互联网视频直播&点播平台RTMP推流组件EasyRTMP在弱网环境下推流稳定吗?会不会有推流失败的问题?