主从复制不就是多台服务器嘛!,一个改变另一个也改变啦,内容其实都一样!
原理:
对数据库进行操作会生成一个文件,binlog(二进制文件),从服务器配置relaylog文件,用来读取master里面binlog(有必要开启binlog,相当于备份),当然要有权限读取是吧,这就需要用到上次的权限配置啦!和普通登录没什么差别。
主做出什么动作,从也做出什么动作。
这时就需要注意主配置文件里面binlog-format ,里面值为row,二进制记录是磁盘变化;值为statusment,此时如果是执行了update语句,从服务器也会记录update语句
如果语句长而磁盘变化小,易用row
如果语句少而磁盘变化大,易用statusment
还有一种mixed,此时由系统分析决定
1 打开主服务器里面配置文件
2 配置从服务器
3分配权限,并查看master状态。 记下FILE及Position的值,这个在后面配置从服务器的时候要用到
4 从服务器上通过指定要复制的主服务器
mysql>change master to aster_host='192.168.1.201',master_user='repl',master_password='q123456',
master_log_file='mysql-bin.,000001',master_log_pos=106;
5 检查从服务器的复制状态
Slave_IO_Running: Yes //此状态必须YES
Slave_SQL_Running: Yes //此状态必须YES
就此ok了,很简单!
所谓的读写分离,就是sql语句的判断啦,通过程序就可以实现。