实战mysql主从配置

  1. 准备两个docker容器,分别在3306和3307开启两个mysql为主从数据库
  2. 可执行以下命令
docker run -p 3306:3306 --name mysql3306 -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

docker run -p 3307:3306 --name mysql3307 -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
  1. 现在配置mysql配置文件,在conf文件夹下创建个mysql.cnf文件,内容如下
[mysqld]
# mysql二进制文件取名
log-bin=mysql-bin
# 二进制日志的格式,有三种:statement/row/mixed
binlog_format=mixed
server-id=101

从mysql也配置

[mysqld]
# mysql二进制文件取名
log-bin=mysql-bin
# 二进制日志的格式,有三种:statement/row/mixed
binlog_format=mixed
server-id=102
  1. 在主服务器上为从服务器分配一个账号,就像一把钥匙,从服务器拿着这个钥匙,才能到主服务器上来共享主服务器的日志文件 - 在主服务器mysql界面,输入下面语句
    GRANT replication slave ON *.* TO 'slave'@'%' IDENTIFIED BY '123456'; //最后为密码,*.*为操作的数据库和表
    • 主库执行
    show master status;

    拿到文件名和位置参数,下一步要填写

  2. 在从库执行
stop slave;
change master to master_host="i.tzxylao.com",master_user="slave",master_password="123456",master_log_file="mysql-bin.000001",master_log_pos=443;
  • 最后两项为上一步获取
  • 最后执行
start slave;
show slave status;
  1. 经过上面几部主从已经同步了,可以尝试建表,插数据了

下面进行故障处理

  1. 假设某种原因导致主从不同步
1.先进入主库,进行锁表,防止数据写入
使用命令: mysql> flush tables with read lock; 注意:该处是锁定为只读状态,语句不区分大小写 2.进行数据备份
把数据备份到mysql.bak.sql文件
[root@server01 mysql]#mysqldump -uroot -p -hlocalhost > mysql.bak.sql
这里注意一点:数据库备份一定要定期进行,可以用shell脚本或者python脚本,都比较方便,确保数据万无一失 3.查看master 状态
mysql> show master status;
+——————-+———-+————–+——————————-+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+——————-+———-+————–+——————————-+
| mysqld-bin.000001 | 3260 | | mysql,test,information_schema |
+——————-+———-+————–+——————————-+
1 row in set (0.00 sec) 4.把mysql备份文件传到从库机器,进行数据恢复 使用scp命令
[root@server01 mysql]# scp mysql.bak.sql root@192.168.1.206:/tmp/ 5.停止从库的状态
mysql> stop slave; 6.然后到从库执行mysql命令,导入数据备份 mysql> source /tmp/mysql.bak.sql 7.设置从库同步,注意该处的同步点,就是主库show master status信息里的| File| Position两项
change master to master_host = ‘192.168.1.206’, master_user = ‘rsync’, master_port=3306, master_password=”, master_log_file = ‘mysqld-bin.000001’, master_log_pos=3260; 8.重新开启从同步
mysql> start slave; 9.查看同步状态
mysql> show slave status\G 查看: Slave_IO_Running: Yes
Slave_SQL_Running: Yes

Mysql主从配置实战的更多相关文章

  1. MySQL主从配置实战笔记

    其实网上已经有关于MySQL主从复制的很丰富全面的资料了,这里写点东西主要是为了给自己加深印象. 复制原理 MySQL主从复制是内建的非常强大的功能,主要应用于数据备份,负载均衡等方面.因为配置相对比 ...

  2. MySQl 主从配置实战

    目前后台数据库使用了一个实例做数据统计分析,随着数据井喷,单个实例无法做数据分析.故开始了读写分离. 1.主配置 [client] port = 3306 socket = /tmp/mysql-33 ...

  3. mysql主从配置和galera集群

    mariadb主从 主从多用于网站架构,因为主从的同步机制是异步的,数据的同步有一定延迟,也就是说有可能会造成数据的丢失,但是性能比较好,因此网站大多数用的是主从架构的数据库,读写分离必须基于主从架构 ...

  4. mysql主从配置

    引言: 双11,阿里云服务器打折,于是我忍不住又买了一台服务器,于是咱也是有两台服务器的爷们了,既然有了两台服务器,那么肯定要好好利用一下吧,那么就来玩玩mysql的主从配置吧. 准备 两台数据库服务 ...

  5. Mysql主从配置,实现读写分离

    大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢 ...

  6. CentOS 7下的 Mysql 主从配置

    最近在玩mysql主从配置,在此记录一下 一.前言 1.安装两个虚拟机(CentOS 7).iP分别是192.168.47.131 和192.168.47.133.其中192.168.47.133作为 ...

  7. Mysql主从配置+读写分离

    Mysql主从配置+读写分离     MySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. ...

  8. mysql主从配置(清晰的思路)

    mysql主从配置.鄙人是在如下环境测试的: 主数据库所在的操作系统:win7 主数据库的版本:5.0 主数据库的ip地址:192.168.1.111 从数据库所在的操作系统:linux 从数据的版本 ...

  9. mysql 主从 配置和同步管理

    首先呢,需要有两个mysql服务器.如果做测试的话可以在同一台机器上装两个mysql服务程序,注意要两个运行程序的端口不能一样.我用的是一个是默认的3306,从服务器用的是3307端口. 在主服务创建 ...

随机推荐

  1. Debian图形界面与字符界面之间的切换

    图形界面切换字符界面 原文出自:https://www.cnblogs.com/qingkai/p/5443572.html 因为不能评论所以摘录过来 第一步: vi /etc/default/gru ...

  2. python基础之Day18

    一.序列化概念 什么是序列化? 内存中的数据结构转成中间格式(json(所有编程语言通用)和pickle)存储到硬盘或基于网络状态 反序列化: 硬盘网络传来的数据格式转换成内存的数据结构 为什么 1. ...

  3. if(变量)的判断

    变量如果不为0,null,undefined,false,都会被处理为true.只要变量有非0的值或是某个对象,数组,字符串,都会认为true

  4. js设置高度和宽度相等

    <!doctype html><html><head><meta charset="utf-8"><link rel=&quo ...

  5. Android学习(四)

    教材学习内容总结 图形和定制视图 硬件加速 Android APILevel14及其以上版本为目标的应用程序来说,硬件加速是默认可用的. 可通过android:hardwareAccelerated= ...

  6. T-SQL流程控制语句

    文章目录 if else语句 简单case语句 搜索式case语句 while语句 if else语句 格式: IF 布尔表达式 BEGIN END ELSE BEGIN END 示例: DECLAR ...

  7. 如何在线更新visual studio installer2017

    更新最后100M文件需要开启全局代理才能成功,不然需要等2个小时才能成功!墙太深了..

  8. python networkx:绘制网络图

    1.简单使用 import networkx as nx import matplotlib.pyplot as plt G = nx.Graph() G.add_edge(1,2) nx.draw_ ...

  9. [SqlServer]SQL Server创建约束图解

    SQLServer 中有五种约束, Primary Key 约束. Foreign Key 约束. Unique 约束. Default 约束和 Check 约束,今天使用SQL Server2008 ...

  10. maven学习四:maven集成jetty插件发布web项目 标签: maven

    http://blog.csdn.net/u014079773/article/details/50167833