1 MySQL主从备份

主机:192.168.43.8

从机:192.168.43.6

条件:主机和从机都安装了mysql,开启了二进制日志

安装mysql (mysql 和 mysql-server)  参考:https://www.cnblogs.com/CloudComputing-binbin/p/14458826.html

wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm     #下载包
rpm -ivh mysql-community-release-el7-5.noarch.rpm yum install mysql-server

其他linux发行版的可以直接:
yum install mysql mysql-server

第一步:主机和从机都开启二进制日志

vi /etc/my.cnf

在[mysqld]后加上下面两行

log-bin=mysql-bin
server-id=6 //server-id 为ip地址最后一段

我的主机server-id=8 , 从机server-id=6

systemctl restart mysqld

第二步:在主服务器上授权,从服务器保存授权的信息主服务器 192.168.43.8

grant replication slave on *.* to slave@'192.168.43.6' identified by '123456';  //用户,密码,ip为从机的
show master status;  //要用到file 和 position

 第三步:接受授权

从服务器 192.168.43.6

change master to master_user='slave',  
master_password='123456',
master_host='192.168.43.8',
master_log_file='mysql-bin.000001',
master_log_pos=330;

在/var/lib/mysql  目录下会生成 master.info 文件

开启从服务器并查看

start slave;    //进入mysql

show slave status\G;  //下图双yes即成功,第一个为解析文件,第二个为解析sql语法

一主多从也是如此

 测试在主服务器创建一个新的数据库,看看从机有没有

主从服务器:

1  备份的作用

2  从服务器分摊主服务器的查询压力(负载均衡)

2 主主备份  (相当于互为主从)

主主服务器: 均摊写压力

/etc/my.cnf    配置文件
log-bin=mysql-bin //开启二进制文件
server-id=8
replicate-do-db=text  //需要写入二进制文件(需要备份)
binlog-ignore-db=mysql  //不需要写人二进制文件(不需要备份)
binlog-ignore-db=information_schema
auto-increment-increment=2 //防止主键冲突,数据id从1开始,每次加2,即1,3,5...
auto-increment-offset=1

两台主服务器都配置一样的,并且相互授权(都执行第一,二步)

两边都执行,就是说,互为主从

 3 一主多从一个主服务器授权给两个从服务器

从服务器都执行第三步

4 多主一从从服务器开通两个线程(给两个端口),一个给一个主,另一个给另一个主

两主服务器:开启bin-log 以及增加授权(第一,二步)

从服务器:配置/etc/my.cnf  在最后面加

[mysqld_multi]
mysqld=/usr/bin/mysqld_safe
mysqladmin=/usr/bin/mysqladmin
log=/tmp/multi.log
#下面为两个线程,除了server-id相同,其他都不同
[mysqld10]  
port=3306
datadir=/var/lib/mysqla/
pid-file=/var/lib/mysqla/mysqld.pid
socket=/var/lib/mysqla/mysql.sock
user=mysql
server-id=30 [mysqld20]
port=3307
datadir=/var/lib/mysqlb/
pid-file=/var/lib/mysqlb/mysqld.pid
socket=/var/lib/mysqlb/mysql.sock
user=mysql
server-id=30

初始化数据库,生成目录mysqla, mysqlb

mysql_install_db --datadir=/var/lib/mysqla --user=mysql  //初始化数据库,生成mysqla
mysql_install_db --datadir=/var/lib/mysqlb --user=mysql  //初始化数据库,生成mysqlb

设置mysqla, mysqlb目录及以下目录文件的属主为mysql(防止出现权限问题)

chown -R mysql /var/lib/mysqla/
chown -R mysql /var/lib/mysqb/

启动从服务器线程

mysqld_multi --defaults-file=/etc/my.cnf start 8
netstat -anpt  //查看tcp端口是否开放3306
mysqld_multi --defaults-file=/etc/my.cnf start 9
netstat -anpt  //查看端口是否开放3307

//后面的数值对应主机的server-id

登录并保存授权信息

mysql -u root -p -P 3306 -S /var/lib/mysqla/mysql.sock
进入mysql后
change master to master_user='slave',master_password='123456',master_host='192.168.43.8',master_log_file='mysql-bin.000001',master_log_pos=330;
start slave;
show slave status\G;
// -S, --socket=name #连接服务器的sockey文件

换 3307再来一遍

mysql -u root -p -P 3307 -S /var/lib/mysqla/mysql.sock
进入mysql后 change master to master_user='slave',master_password='123456',master_host='192.168.43.8',master_log_file='mysql-bin.000001',master_log_pos=330;
start slave;
show slave status\G;

测试:

分别在两主服务器创建数据库,然后进入从服务器的相应端口查看是否存在新创建的数据库

进入从服务器数据库

mysql -u root -p -P 3306 -S /var/lib/mysqla/mysql.sock
mysql -u root -p -P 3307 -S /var/lib/mysqla/mysql.sock

mysql集群--基于centos7的更多相关文章

  1. mysql集群基于docker 在centos上

    新博客https://blog.koreyoshi.work/ mysql集群(PXC)基于docker 在centos上 常用设计方案 Replication(复制) 速度快 弱一致性 低价值 场景 ...

  2. docker搭建基于percona-xtradb-cluster方案的mysql集群

    一.部署环境 序号 hostname ip 备注 1 manager107 10.0.3.107 centos7;3.10.0-957.1.3.el7.x86_64 2 worker68 10.0.3 ...

  3. MySQL集群架构:MHA+MySQL-PROXY+LVS实现MySQL集群架构高可用/高性能-技术流ken

    MHA简介 MHA可以自动化实现主服务器故障转移,这样就可以快速将从服务器晋级为主服务器(通常在10-30s),而不影响复制的一致性,不需要花钱买更多的新服务器,不会有性能损耗,容易安装,不必更改现有 ...

  4. mysql集群搭建--韩国庆

    按照我给大家提供的步骤,一步一步来,你就能配好mysql集群环境 什么是mycat 简单的说,MyCAT就是: •一个彻底开源的,面向企业应用开发的“大数据库集群” •支持事务.ACID.可以替代My ...

  5. MySQL集群-PXC搭建以及使用innobackupex工具进行全局备份和增量备份

    环境:centos7 vm1:10.154.47.236 vm2:10.154.52.189 vm3:10.105.12.50 目的:pxc使用三个节点构建mysql集群,使用innobackupex ...

  6. Mycat搭建负载均衡,读写分离的Mysql集群

    Mycat搭建负载均衡,读写分离的Mysql集群 准备环境 1.mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz 2.Mycat-server-1.6.7.4-te ...

  7. 京东分布式MySQL集群方案介绍

    背景 数据库作为一个非常基础的系统,任何一家互联网公司都会使用,数据库产品也很多,有Oracle.SQL Server .MySQL.PostgeSQL.MariaDB等,像SQLServer/Ora ...

  8. 高可用性、负载均衡的mysql集群解决方案

    高可用性.负载均衡的mysql集群解决方案 一.mysql的市场占有率 二.mysql为什么受到如此的欢迎 三.mysql数据库系统的优缺点 四.网络服务器的需求 五.什么是mysql的集群 六.什么 ...

  9. 分布式MySQL集群方案的探索与思考

    转载:http://www.infoq.com/cn/articles/exploration-of-distributed-mysql-cluster-scheme?utm_campaign=rig ...

随机推荐

  1. 聊一聊如何用C#轻松完成一个SAGA分布式事务

    背景 银行跨行转账业务是一个典型分布式事务场景,假设 A 需要跨行转账给 B,那么就涉及两个银行的数据,无法通过一个数据库的本地事务保证转账的 ACID ,只能够通过分布式事务来解决. 市面上使用比较 ...

  2. 数据库查询语句遇到:Unknown column 'XXXX' in 'where clause'解决方法

    数据库查询语句遇到:Unknown colunm 'XXX' in 'where clause'解决方法 根本原因:可能是sql语句所用到的数据类型错误(int与String)弄错- 我的情况: 在网 ...

  3. mysql加强(4)~多表查询

    mysql加强(4)~多表查询:笛卡尔积.消除笛卡尔积操作(等值.非等值连接),内连接(隐式连接.显示连接).外连接.自连接 一.笛卡尔积 1.什么是笛卡尔积: 数学上,有两个集合A={a,b},B= ...

  4. 学习JAVAWEB 第三十六天

    今天改了一天的bug 使用eclipse出现的问题:首先lib文件夹的名字是不可以更改的它放在WEB-INF文件夹下,放所有的jar包,使用时一定不要忘了将jar包添加至构建路径tomcat的部署问题 ...

  5. 合宙AIR105使用Keil MDK + DAP-Link 烧录和调试

    关于AIR105 AIR105是合宙LuatOS生态下的一款芯片, 1月初上市, 开发板与摄像头一起搭售(赠送). 从配置信息看, 芯片性能相当不错: Cortex-M4F内核, 最高频率204Mhz ...

  6. application/x-www-form-urlencoded、application/json、multipart/form-data、text/xml简单总结

    最近在数据传输时,一直不明白这四种的区别,查了很多资料,也还是感到很模糊,因此,简单总结一下,以后再完善 1.在GET方式传输数据中,这四种格式,后台都可以接收数据(原生的request.getPar ...

  7. Block内存管理

    block是不是一个对象?是一个对象 如何判断当前文件是MRC,还是ARC 1.dealloc 能否调用super,只有MRC才能调用super 2.能否使用retain,release.如果能用就是 ...

  8. nginx入门教程 (转)

    1.Nginx 状态码配置和错误文件 server { # 配置访问 /test.js 时报 403 错 location /test.js { return 403; } # 配置访问 /404 时 ...

  9. 入门 - 复习Kubernetes核心概念 (八)

    本文将会简单介绍Kubernetes的核心概念.因为这些定义可以在Kubernetes的文档中找到,所以文章也会避免用大段的枯燥的文字介绍.相反,我们会使用一些图表(其中一些是动画)和示例来解释这些概 ...

  10. mysql获取表中的字段名

    转载请注明来源:https://www.cnblogs.com/hookjc/ SELECT COLUMN_NAME FROM 'information_schema'.'COLUMNS' where ...