配置Mysql主从
配置Mysql主从可以做热备、读写分离,是提高网站性能、提高数据安全性的比较有效的方式,而且配置简单,所以笔者在网站因业务逻辑需要大量用到数据库操作而性能不佳时,首先想到要做主从,其实还有别的方案的,比如做缓存,但是做缓存要改代码所以等之后再应用,先把主从给配置了。以下是做Mysql主从的关键步骤:
1、准备两个服务器,并且配置并启动同版本的mysql服务,其中,一个主(master)一个从(slave);
2、在master数据库中创建数据库,并将数据库同步到slave数据库,这里我采用了在master中导出sql文件然后在slave中通过scp命令获取后导入的方式;
3、在master中配置一个slave访问账户:
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'52.80.193.101' IDENTIFIED BY 'password';
4、在master数据库配置中添加以下配置:
server-id=1
log-bin=mysql-bin --开启日志,并将二进制日志文件设置为mysql-bin
max_binlog_size=104857600--日志文件的最大尺寸
binlog_format=mixed
binlog-do-db=test --这里配置了需要同步的数据库,如果未配置则表示同步所有数据库
binlog-ignore-db=mysql--这里配置了不需要同步的数据库
5、在slave数据库中添加以下配置:
server-id=2
log-bin=mysql-bin
replicate-same-server-id
replicate-do-db=blog=test -- 指定要同步的数据库
replicate-ignore-db=mysql -- 指定不需要同步的数据库
6、在slave数据库中执行以下命令:
change master to master_host='52.80.193.101',master_user='slave',master_password='password'
7、分别查看master、slave状态:
show master status;--查看master状态,如果之前没有开启二进制日志的话这里显示空,如果已经开启,会有File、Position、Binlog_Do_DB、Binlog_Ignore_DB等字段
-----
show slave status; --查看slave状态,会显示之前的一些配置信息和一些默认信息
8、测试:
1)现在master中创建一个数据表:
create table test_(id int(11));
2)在slave中test数据库下查看是否有test_表
show tabes like 'test_';
如果有则说明test_表同步过来了,即主从复制配置成功!