说到主从,那至少得有两个DB-Server,主的用来写入数据,从的用来读取数据,换句话说就是:读写分离。这里要注意的是:主从同步可以读写分离,也可以读写不分离。配置也很简单,主要是修改MySQL数据库的配置文件(Linux下:my.cnf;Win下:my.ini);主从同步是靠二进制日志来记录增删改操作,所以在配置时记得开启二进制日志项,具体配置如下:
一、配置主服务器:
打开MySQL配置文件my.cnf,修改以下参数项,若没有,自行添加即可。
server-id=1 #记得id不要和同步DB中的重复
log-bin= 二进制文件的位置 #主服务器需打开二进制日志
binlog-do-db=mydata #需要同步的数据库(这里我用mydata,可以随便写)
binlog-ignore-db=mysql #需要忽略的数据库(一般忽略mysql数据库)
主服务器创建一用户,该用户必须有 REPLICATION SLAVE 权限
二、配置从服务器:
打开MySQL配置文件my.cnf,修改以下参数项,若没有,自行添加即可。
server-id = 2
replicate-do-db=mydata
进入mysql命令行执行命令
change master to master_host=' 主服务器地址 ', master_user=' 用户名 ',master_password=' 密码 ',
master_port= 端口号 ,MASTER_CONNECT_RETRY=10;
例如:
change master to master_host='192.168.16.6',
master_user='root',master_password='123456',master_port=3306,master_connect_retry=10;
再执行 start slave;配置完成!
--------------------------------------------------
停止mysql主服务器和从服务器
先启动主服务器 然后再启动从服务器在从服务器输入命令
show slave status\G;
查看状态:
Slave_IO_State: Waiting for master to sendevent
Master_Host: 192.168.16.6
Master_User: slave
Master_Port: 3306
Connect_Retry: 10
Master_Log_File: binlog.000002
Read_Master_Log_Pos: 903
Relay_Log_File: relaylog.000004
.........
在主服务器上建立数据库数据表后查看从服务器,看是否配置成功