(0)
同步的介绍:
MySQL同步机制基于master把所有对数据库的更新、删除等都记录在二进制日志里。因此,想要启用同步机制,在
master就必须启用二进制日志。每个slave接受来自master上在二进制日志中记录的更新操作,因此在slave上执行
了这个操作的一个拷贝。
应该非常重要地意识到,二进制日志只是从启用二进制日志开始的时刻才记录更新操作的。
结论一:
所有的 slave必须在启用二进制日志时把master上已经存在的数据拷贝过来。如果运行同步时slave上的数据和
master上启用二进制日志时的数据不一致的话,那么slave同步就会失败。
(1)
设置时,须两部机及两个MYSQL:
192.168.1.191:作为主服务器(A机).
192.168.1.100:作为从服务器(B机).
(2)
未设置时,
进入A机的mysql,输入: show master status;会显示为空.
进入B机的mysql,输入: show slave status;也会显示为空.
------------------(单向)------设置过程--------------------------
(3)
先设置主服务器:
3.1
创建有进行同步备份的数据库:
create database jtbackup;
3.2
先进行授权:
GRANT FILE,SELECT,REPLICATION SLAVE ON *.* to '用户名 '@'主机' identified by '密码';
用户名,主机,即是要从服务器的IP,及从服务器用来连接主服务器的用户名.如:
grant file,select,replication slave on *.* to 'jason'@'192.168.1.100' identified by '
jason';
3.3
设置配置文件:
在windows下,对应my.ini.在linux下,对应/etc/mysql/my.cnf.
在配置文件中的[mysqld]下面添加,如下:
server-id = 1
log-bin=c:\jasonmysqlback #同步事件的日志记录文件
binlog-do-db=jtbackup #需要备份的数据库名,如果备份多个数据库,重复设置这个选项即可
binlog-ignore-db=** #不需要备份的数据库名,如果备份多个数据库,重复设置这个选项即可
(4)
设置从服务器:
4.1
创建有进行同步备份的数据库(要同主服务器上的数据库一样):
create database jtbackup;
4.2
设置配置文件:
在配置文件中的[mysqld]下面添加,如下:
server-id=2 #(配置多个从服务器时依次设置id号)
master-host=192.168.1.191 #主服务器
master-user=jason #主服务器授权的用户名
master-password=jason #主服务器授权的密码
master-port=3306 #主服务器的端口
replicate-do-db=jtbackup#需要备份的数据库名,如果备份多个数据库,重复设置这个选项即可
(5)
重启主服务器,从服务器上的mysql.
5.1
重启主服务器上的mysql后,会根据配置log-bin=c:\jasonmysqlback,在C盘生成两个文件,用来记录同步的内容.
进入mysql后,用:
mysql> show master status;
+-----------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-----------------------+----------+--------------+------------------+
| jasonmysqlback.000001 | 98 | jtbackup | |
+-----------------------+----------+--------------+------------------+
会显示同步的数据库名,及同步生成的文件.
5.2
重启从服务器上的mysql后,会在mysql的目录下,生成一个master.info的文件.
注意:
如果修改了主服务器的配置,记得删除从服务器上的master.info文件。否则从服务器使用的还是老配置,可能会导
致错误。
进入mysql后,用:
slave start;
再用:
show slave status;
若看到:
Slave_IO_Running 和 Slave_SQL_Running 两列的值都为 "Yes",这表明 Slave 的 I/O 和 SQL 线程都在正常运行
。
(6)
至此,同步设定成功。
在主服务器上的jtbackup上所创建/更新/删除的表或记录,都会更新,同步到从服务器上.
(7)
关于要复制多个数据库时,binlog-do-db和replicate-do-db选项的设置,如果要备份多个数据库,只要重复设置相
应选项就可以了。
比如:
主服务器上:
binlog-do-db=a
binlog-do-db=b
从服务器上:
replicate-do-db=a
replicate-do-db=b
(8)
若进行同步前,主服务器已有数据.
可以采用的方式:
一,将主服务器的数据拷贝到从服务器.
二,将主服务器的数据备份出来.配置好同步好,再导入数据.