Mysql的Master与Slave基本原理及配置
2012-11-15 17:26
357 查看
=============================基本原理=============================
Mysql的复制(replication)是一个异步的复制,从一个Mysql instace(称之为Master)复制到另一个Mysql instance(称之Slave)。实现整个复制操作主要由三个进程完成的,其中两个进程在Slave(Sql进程和IO进程),另外一个进程在 Master(IO进程)上。
要实施复制,首先必须打开Master端的binary log(bin-log)功能,否则无法实现。因为整个复制过程实际上就是Slave从Master端获取该日志然后再在自己身上完全顺序的执行日志中所记录的各种操作。
复制的基本过程如下:
(1)Slave上面的IO进程连接上Master,并请求从指定日志文件的指定位置(或者从最开始的日志)之后的日志内容;
(2)Master接收到来自Slave的IO进程的请求后,通过负责复制的IO进程根据请求信息读取制定日志指定位置之后的日志信息,返回给Slave 的IO进程。返回信息中除了日志所包含的信息之外,还包括本次返回的信息已经到Master端的bin-log文件的名称以及bin-log的位置;
(3)Slave的IO进程接收到信息后,将接收到的日志内容依次添加到Slave端的relay-log文件的最末端,并将读取到的Master端的 bin-log的文件名和位置记录到master-info文件中,以便在下一次读取的时候能够清楚的高速Master"我需要从某个bin-log的哪个位置开始往后的日志内容,请发给我";
(4)Slave的Sql进程检测到relay-log中新增加了内容后,会马上解析relay-log的内容成为在Master端真实执行时候的那些可执行的内容,并在自身执行。
=============================配置=============================一、准备工作:
1.保证Master/Slave两台主机上mysql的版本一致(下面的配置是在MySQL5.5下完成的)。
2.保证Master/Slave能够互相ping通,能够通信。
Master主机IP : 192.168.0.80
Slave主机IP : 192.168.0.114
二、配置Master/Slave上面的my.ini文件
■Master 在[mysqld]下添加:
配置完成后重启Master Slave
三、在Master上面执行
■授予Slave机访问Master的权限
■查看Master的状态
※记下File和Position的值,用于之后对Slave的配置。
四、配置Slave
五、检测Slave的状态
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Seconds_Behind_Master: 0
摘自:
http://linuxme.blog.51cto.com/1850814/383742/ http://coffeant.diandian.com/post/2010-08-17/15235348
Mysql的复制(replication)是一个异步的复制,从一个Mysql instace(称之为Master)复制到另一个Mysql instance(称之Slave)。实现整个复制操作主要由三个进程完成的,其中两个进程在Slave(Sql进程和IO进程),另外一个进程在 Master(IO进程)上。
要实施复制,首先必须打开Master端的binary log(bin-log)功能,否则无法实现。因为整个复制过程实际上就是Slave从Master端获取该日志然后再在自己身上完全顺序的执行日志中所记录的各种操作。
复制的基本过程如下:
(1)Slave上面的IO进程连接上Master,并请求从指定日志文件的指定位置(或者从最开始的日志)之后的日志内容;
(2)Master接收到来自Slave的IO进程的请求后,通过负责复制的IO进程根据请求信息读取制定日志指定位置之后的日志信息,返回给Slave 的IO进程。返回信息中除了日志所包含的信息之外,还包括本次返回的信息已经到Master端的bin-log文件的名称以及bin-log的位置;
(3)Slave的IO进程接收到信息后,将接收到的日志内容依次添加到Slave端的relay-log文件的最末端,并将读取到的Master端的 bin-log的文件名和位置记录到master-info文件中,以便在下一次读取的时候能够清楚的高速Master"我需要从某个bin-log的哪个位置开始往后的日志内容,请发给我";
(4)Slave的Sql进程检测到relay-log中新增加了内容后,会马上解析relay-log的内容成为在Master端真实执行时候的那些可执行的内容,并在自身执行。
=============================配置=============================一、准备工作:
1.保证Master/Slave两台主机上mysql的版本一致(下面的配置是在MySQL5.5下完成的)。
2.保证Master/Slave能够互相ping通,能够通信。
Master主机IP : 192.168.0.80
Slave主机IP : 192.168.0.114
二、配置Master/Slave上面的my.ini文件
■Master 在[mysqld]下添加:
server-id = 1 #Master主标服务标识号,必需唯一 log-bin = mysql-bin #因为MYSQL是基于二进制的日志来做同步的,这个选项是必须的 binlog-do-db = db_user #要同步的库名 binlog-do-db = db_topic binlog-ignore-db= mysql,information_schema,performance_schema,phpmyadmin■Slave 在[mysqld]下添加:
server-id = 2 #Slave主标服务标识号,必需唯一 log-bin = mysql-bin log-slave-updates replicate-do-db = test #要同步的数据库
配置完成后重启Master Slave
三、在Master上面执行
■授予Slave机访问Master的权限
mysql>grant replication slave,reload,super,select on *.* to root@'192.168.0.114' identified by 'rootadmin'; mysql>flush privileges;
■查看Master的状态
mysql> show master status\G *************************** 1. row *************************** File: mysql-bin.000001 Position: 3350 Binlog_Do_DB: test Binlog_Ignore_DB: mysql,information_schema,performance_schema,phpmyadmin 1 row in set (0.00 sec)
※记下File和Position的值,用于之后对Slave的配置。
四、配置Slave
mysql>stop slave; 停止Slave mysql> change master to -> master_host = '192.168.0.80', -> master_user = 'root', -> master_password = 'rootadmin', -> master_port = 3306, -> master_log_file = 'mysql-bin.000001', -> master_log_pos = 3350; mysql> start slave; #开始同步
五、检测Slave的状态
mysql> show slave status\G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.0.80 Master_User: root Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000001 Read_Master_Log_Pos: 4439 Relay_Log_File: mysqld-relay-bin.000002 Relay_Log_Pos: 1342 Relay_Master_Log_File: mysql-bin.000001 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB: test Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0 Last_Error: Skip_Counter: 0 Exec_Master_Log_Pos: 4439 Relay_Log_Space: 1499 Until_Condition: None Until_Log_File: Until_Log_Pos: 0 Master_SSL_Allowed: No Master_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: 0 Master_SSL_Verify_Server_Cert: No Last_IO_Errno: 0 Last_IO_Error: Last_SQL_Errno: 0 Last_SQL_Error: Replicate_Ignore_Server_Ids: Master_Server_Id: 1 1 row in set (0.00 sec)#最重要的三个字段为以下值时成功了
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Seconds_Behind_Master: 0
摘自:
http://linuxme.blog.51cto.com/1850814/383742/ http://coffeant.diandian.com/post/2010-08-17/15235348
相关文章推荐
- mysql (master/slave)复制原理及配置
- mysql(master/slave)主从复制原理及配置图文详解
- mysql (master/slave)复制原理及配置
- 单PC Windows环境MySQL主从master-slave模式配置与测试
- mysql5.5 master-slave(Replication)配置方法
- mysql master slave 配置
- MySQL5.6 数据库主从(Master/Slave)同步安装与配置详解
- 解读mysql主从配置及其原理分析(Master-Slave)
- mysql (master/slave)复制原理及配置
- MYSQL的master/slave数据同步配置 ZT
- Centos下Mysql多主机master单机多实例slave同步配置
- MySQL Replication(Master与Slave基本原理及配置)
- mysql 5.6.14 主(master)从(slave)复制(也称mysql AB复制)环境配置[基于binlog]
- MYSQL5.6.33数据库主从(Master/Slave)同步安装与配置详解 (Master-Linux Slave-windows7)
- mysql(master/slave)主从复制原理及配置图文详解
- 我自己配置Mysql Master/Slave的过程
- mysql (master/slave)复制原理及配置
- mysql 主从master-slave同步复制 配置,为读写分离准备
- MySQL5.6 数据库主从(Master/Slave)同步安装与配置详解
- mysql的master/slave数据同步配置[转]