昨天自己试验了实现mysql的主从复制,很开心试验成功了。为什么要实现主从复制呢,目的就是为了应对在项目中遇到大并发的时数据库压力过大,导致响应太慢或者数据库崩溃的危险情况。
实现了主从复制便可以实现主库和从库的数据一致。这样遇到单库压力过大时我们就可以用读写分离的方法来减小主库的压力。主库专门做写库,从库为读库。
我没有具体去了解过mysql主从复制的原理,但猜测就是从库利用主库操作产生的日志执行同样的sql语句来实现数据的一致性。
具体方法如下(以windows系统为例):
需要准备的工作是两台windows主机,安装好相同版本的mysql数据库。在试验之前这里要提前提醒一下,在局域网中的两台电脑要提前关闭防火墙,防止数据库不能互连的情况哦。假设主库ip地址为192.168.1.101,mysql用户名为root 密码为root
一、主库设置
1.在数据库安装路径中找到my.ini文件并找到[mysqld],在其下方添加以下配置:
#为数据库操作产生的二进制文件起个文件名test3306
log_bin=test3306
#指定数据库id,在数据库集群中不能重复
server-id=101
#指定要同步的数据库名,test为数据库名称
binlog-do-db=test
2.重启数据库
3.登录mysql的用户后执行:show master status;
在界面中会显示当前主库的日志文件名(File)和起始位置(position)。这两个值一定要记下,在设置从库时要用到。
二、从库设置
1.在数据库安装路径中找到my.ini文件并找到[mysqld],在其下方添加以下配置:
#指定数据库id,在数据库集群中不能重复
server-id=102
2.重启数据库
3.登录用户并执行:
change master to master_host='192.168.1.101',master_user='root', master_password='root',master_port='3306',
master_log_file='这里是你记下的主库的日志文件名(File)对应的值',
master_log_pos=这里是你记下的起始位置(position);
4.start slave;
这时就可以操作主库来验证了。