Home > Database > Mysql Tutorial > MySQL主从服务器的原理和设置

MySQL主从服务器的原理和设置

WBOY
Release: 2016-06-07 17:06:46
Original
887 people have browsed it

一 主从配置的原理 mysql的Replication是一个异步的复制过程,从一个mysql instance(Master)复制到另一个mysql instance(Sla

一 主从配置的原理
    mysql的Replication是一个异步的复制过程,从一个mysql instance(Master)复制到另一个mysql instance(Slave), 在master与slave之间的整个复制过程主要由三个线程完成,分别为Master端得IO线程和Slave端得IO线程和Sql线程。整
个过程如下:
    1 Slave上的IO线程连接上Master,,并请求从指定日志的指定位置之后的日志内容
    2 Master收到来自Slave的IO线程请求后,通过Master上的IO线程根据请求信息读取日志信息返回给Slave端IO线程。
      除了日志所包含的信息之外,还包含本次返回信息在Master端得Binary Log文件的名称以及位置
    3 Slave的IO线程接收到信息后,将接收到的日志内容依次写到Slave端得RelayLog文件末尾,并读取Master端得Binary
      Log文件名和位置记录到master-info中,以便下次的IO请求
    4 Slave的Sql线程检测到Relay Log中有新增内容后,马上解析可执行的Sql语句,并在本机上执行

二 设置过程
1 首先准备两台服务器:主服务器wwwlinuxidc.com 从服务器


2 在主数据库服务器中为从服务器添加一个拥有访问主库的用户,其命令为:

 GRANT REPLICATION SLAVE ON *.* TO ‘username’@’’ IDENTIFIED BY 'password'

  注: username是你创建的可以访问主库的用户名,IP为从机IP,password为用户登录密码
      添加后在从服务器上用 mysql -hwwwlinuxidc.com -uusername -ppassword 来测试下是否可以访问主数据库

3 修改主服务器的配置文件
   vi /etc/my.cnf
   server-id = 1  ##数据库服务器都有唯一的server-id,通常主服务器制定为1,默认的配置文件中已经存在,特别注意从服务器配置中要将此行注释掉
   log-bin=mysql-bin ##mysql进行主从复制是通过二进制的日志文件来进行的,所以必须开启mysql的日志功能
   以上两行配置都已经存在,还需额外添加如下配置:
   log_bin = /home/mysql/mysql/log/mysql-bin.log #二进制文件存放目录,可自行定义,但需注意目录有写权限
   read-only = 0 #主机读写都可以
   binlog-do-db = test1 #设定同步的数据库,多库可以多行设置
   binlog-do-db = test2
   binlog-ignore-db = test3 #设定不用同步的数据库,多库可以多行设置
   binlog-ingore-db = test4 17jquery.com

4 修改从服务器的配置文件
   vi /etc/my.cnf
   首先找到server-id = 1 这行,用#将这行注释掉,不然会和主机冲突,然后添加
   server-id = 2
   replicate-do-db = test1 #允许同步的数据库,多库可以多行设置
   replicate-do-db = test2
   replicate-ignore-db = test3 #不需同步的数据库,多库可以多行设置
   replicate-ignore-db = test4
   master-connect-retry=30
   master-host= wwwlinuxidc.com #主服务器地址
   master-user=username #刚刚添加访问主服务器的用户名
   master-password=password #主机密码
   master-port=3306
   read-only=1 #只允许读操作(连接用户不能有SUPER权限,否则无效)
5 重启主服务器和从服务器
  在主服务器上登录mysql 输入

show master status\G 
可查看主服务器状态
  在从服务器上登录

mysql start slave
(启动从机) 然后show slave  status \G ,如果以下两项都为yes即是从机配置成功。
     Slave_IO_Running: Yes
     Slave_SQL_Running: Yes
 
  从数据库服务器的通常操作命令有:
  start slave;  ####启动复制线程
  stop slave;   ####停止复制线程
  reset slave;  ####重置复制线程
  change master to; ###动态改变到主服务器的配置 如change master to master_user='username';

linux

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template