数据库读写分离
Window下主从配置
Mysql的Replication(复制)是一个异步的复制过程,从一个Master服务器上复制到另一个slave服务器上。在主与从之间的实现整个过程主要有三个线程来完成,其中两个线程(SQL线程和IO线程)在从服务器上,另一个IO线程在主服务器上。
要实现Mysql的Replication,首先必须打开主服务器的Binarylog功能,否则无法实现,因为整个复制过程实现。因为整个复制过程实际上就是从服务器从主服务器上获取该日志然后再在自己身上完全顺序的执行日志中所记录的各种操作。打开MysqlR Binary Log可以通过在启动Mysql Server的过程中的Mysqld参数组增加“log-bin"参数项。
环境 A B 数据库为5.15
其环境都是window xp
A 主服务器 192.168.1.12
B 从服务器 192.168.1.235
配置过程
1. 在A的数据库创建一个备份数据库 命令如下
GRANT REPLICATION SLAVE ON *.* TO 'backup'@'192.168.1.234' IDENTIFIED BY '123456';
(其中backup为用户名 密码为123456)
grant all on *.* to 'backup'@'%' identified by '123456';
(赋予这个用户能远程访问本地的数据库)
然后在mysql 文件下添加
server-id = 1 //以前有 可以不写
log-bin=mysql-bin //日志打开 默认是打开的
binlog-do-db=yan //要复制的主数据库
binlog-ignore-db=mysql //忽略不复制的数据库
日志默认放在mysql/data 目录下
2 设置从服务器的my.ini 加入
server-id = 2 //切记修改为2
master-host =192.168.1.12 //主服务器名称
master-user =backup //用户名
master-pass =123456 //密码
master-port =3306
master-connect-retry=60 #如果从服务器发现主服务器断掉,重新连接的时间差(秒)
replicate-do-db =yan #只复制某个库
replicate-ignore-db=mysql #不复制某个库
设置主服务器的用户名和密码
CHANGE MASTER TO MASTER_HOST='192.168.1.12',MASTER_USER='root',MASTER_PASSWORD='123456';
3 同步数据库
就是开始的时候数据库的内容一样
4 先重启主服务器 的mysql 服务 ,在重启从服务器的mysql服务
监控从服务器的状态
可以通过:show slave status\G来查看,另外如果从数据库在复制的过程中出现问题,可以通过命令reset slave从数据库服务器复制的线程,从数据库服务器的通常操作命令有:
start slave; ####启动复制线程
stop slave; ####停止复制线程
reset slave; ####重置复制线程
最好start slave 一下
5 验证是否配置正确
登陆主服务器 mysql > show master status; 应看到如下行
登陆从服务器mysql > show slave status; 应看到如下行
执行后会显示很多东西, 然后找到下面这两项:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
如果这俩项是yes 那么就配置成功了
6 这次可以看看从主服务添加修改删除 从服务器的变化了