主服务器Mysql版本一定要低于或者等于备份服务器Mysql版本
此教程是在window 7系统上进行的,MySql版本为:5.6
一、在主、备份服务器上各添加同步账号,执行以下命令:
mysql>grant replication slave,replication client on *.* to repl@'192.168.1.%' identified by '123456';
创建一个用户名为:repl 密码为:123456 并且在局域网内都能访问的账号
如果要指定到某一台服务器,把%换成指定服务器的IP
二、在主服务器上修改MySql配置文件(windows操作系统上是my.ini ,linux操作系统上市my.cnf)
在[mysqld]下添加以下配置:
server_id=1
log_bin=mysql-bin
必须明确指定一个唯一的服务器ID,一般为服务器IP地址的末8位
要保证其不变且唯一。log_bin是来指定二进制日志文件的名称。
三、 保存文件,重新启动mysql服务。用命令查看是否配置成功,show master status;
四、 配置备份服务器,同样找到my.ini文件,修改配置如下:
在[mysqld]下添加:
server_id=3
log_bin=mysql-bin
relay_log=D:Program FilesMySQLMySQL Server 5.6
elay-bin
log_slave_updates=1
read_only=1
其中relay_log是指定中继日志的位置和命名,在此不用指定master_port、master_host 等这 些配置,这些都是老配置,新版本已经将其抛弃。保存之后同样也要重启mysql服务。
五、在备份服务上启动 同步 功能
执行以下命令:
mysql>change master to master_host='192.168.1.5',
->master_user='repl',
->master_password='123456',
->master_log_file='mysql-bin.000001',
->master_log_pos=0;
执行后,可以通过 show slave statusg; 来检查同步功能是否正在执行。我们可以看到slave_io_state为空,slave_io_running、slave_sql_running显示都为NO,说明备份服务器已经配置成功,但是还没有启动 ,然后再运行 启动 同步 命令:
mysql>start slave;
如果执行成功,我们用show slave statusg; 来检查是否成功,如果slave_io_state为:Waiting for master to send event,slave_io_running、slave_sql_running都为YES,此时整个同步功能就已经成功了,接下来你可以试着改变一下主服务器数据,看一下备份服务器的数据是否发生了变化!
如果要指定同步的数据名称,请用以下配置:
主服务器上用: binlog-do-db=dbname (注:dbname为数据的名称),如果要同步多个数据库
binlog-do-db=dbname1
binlog-do-db=dbname2
binlog-do-db=dbname3
上面的dbname1,dbname2,dbname3分别对应你要写入二进制的数据库
备份服务器上用:replicate_do_db=dbname (注:dbname为数据的名称) 如果要同步多个数据库,配置和主服务器一样!