MySQL主从复制搭建

  

mysql安装点击此处

  

MySQL主从介绍

  

MySQL主从又叫做复制,AB复制。简单讲就是A和B两台机器做主从后,在一个上写数据,另外一台B也会跟着写数据,两者数据实时同步。
MySQL主从是基于binlog的,主上须开启binlog才能进行主从。

  

指定数据库同步操作:
环境说明:需求是创建主从复制环境,要求主端只同步主库中库的测试到奴隶端

  

主端IP: 10.10.10.1奴隶端IP: 10.10.10.2

  

主从复制条件:

  

1。开启主库binlog功能
2。开启主从库服务器id
3。确保主从配置文所件my . cnf中所做有服务器id不同
4。主库建立同步的账户代表并且授权复制
5。在主库锁表刷新表读锁;并查看主库上binlog文件及位置点
显示主状态\ G;记录下此binlog文件和位置点。
6。在主端新开mysql窗口导出全备,恢复备份数据到从库,
7。登录从库,修改主…. .
自动在从库生成配置文件master.info
打开复制开关开始奴隶;显示奴隶状态\ G
8。解锁,开放用户写入功能

  

操作过程:
主配库my . cnf中所做置文件件参数:

  
 <代码> vi/etc/my.cnf
  
  服务器id=1111(和从库不同即可)
  log-bin=mysql-bin(开启binlog)
  binlog-do-db=数据库名称(记录指定库的binlog,模式不同,记录结果不同。)
  binlog_format=混合(设置binlog模式)
  expire_logs_days=7(保留7天的binlog)  
  

重启主端mysql

  
 <代码> centos 6:/etc/init.d/mysql重启
  centos 7:
  systemctl启动mysql  
  

从配库my . cnf中所做置文件件参数:

  
 <代码> vim/etc/my.cnf
  服务器ID=2222(从库的ID,和主库不冲突即可) 
  

重启奴隶端mysql

  
 <代码> centos 6:/etc/init.d/mysql重启
  centos 7:
  systemctl启动mysql  
  

一。主人上操作:

  

主库建立同步的账户代表并且授权复制;在主库锁表刷新表读锁;并查看主库上binlog文件及位置点

  
 <代码>显示主状态\ G;记录下此binlog文件和位置点。
  mysql -uroot - p的数据库密码”- e”格兰特复制奴隶*。* rep@ 10.10.10.2”被“rep@back123”;冲洗特权;冲洗与读锁表;显示主状态;“ 
  

备份指定数据库数据

  
 <代码>,mysqldump -uroot - p的数据库密码”- b数据库名称——单独的事务活动| gzip祝辞/根/数据库名称_美元(日期+ % F) . sql。广州(输出压缩的sql文件)
  
  ,mysqldump -uroot - p的数据库密码”- b数据库名称——单一事务事件祝辞/根/数据库名称_(日期+ % F)美元。sql(输出sql文件) 
  

传输数据到奴隶端从库机器

  

<代码> scp rp - p ssh服务端口sql文件名称root@从库IP:/根/

  

二.slave上操作:

  

登陆从库:

  
 <代码> gzip - d test.sql.gz;/root/test.sql来源;
  停止奴隶;
  重置的奴隶;
  
  停止奴隶;
  改变主
  MASTER_HOST='主库地址”,
  MASTER_PORT=3306, - - - - - -→端口
  MASTER_USER='新建数据库用户”,
  MASTER_PASSWORD='新建用户的密码”,
  MASTER_LOG_FILE='日志文件名称”,
  MASTER_LOG_POS=日志的位置值;
  
  开始奴隶;显示奴隶状态\ G;  
  

三。最后在主人上执行解锁操作:

  

<代码>解锁表;

  

到此处配置完成:

  

在主人上创建测试表测试:

  

同步单个数据库可以在主服务器或者从服务器上配置:

  
 <代码>主服务器:
  binlog-do-db=仅同步指定的库
  binlog-ignore-db=忽略指定的库
  
  从服务器:
  replicate_do_db=同步指定的库
  replicate_ignore_db=忽略指定的库
  replicate_do_table=同步指定的表
  replicate_ignore_table=忽略指定的表
  
  replicate_wild_do_table=如aming. %,支持通配符
  replicate_wild_ignore_table= 
  

主从过程

  

主将更改操作记录到binlog中
从将主的binlog事件(SQL语句)同步到本机并记录在relaylog中
从根据relaylog里面的SQL语句按顺序执行

  

说明:该过程有三个线程,主上有一个日志转储线程,用来和从的i/o线程传递binlog;从上有两个线程,其中i/o线程用来同步主的binlog并生成relaylog,另外一个SQL线程用来把relaylog里面的SQL语句落地。

  

应用环境

  

备份重要数据
分担主库数据读取压力

MySQL主从复制搭建