mysql读写分离

来源:互联网 发布:金融网络销售是传销吗 编辑:程序博客网 时间:2024/06/03 21:24

具体实施

本人虚拟机下有两台linux,IP114 123

1: 114做从服务器、 123做为主服务器.

:首先配置master服务器

 启动mysql保证3306互通

连接客户端查看master状态:show master status;


2,修改my.cnf文件 vim/etc/my.cnf.


Log_bin=mysql-bin:二进制日志

Binlog_format=mixed:日志格式

Server_id=1:服务器唯一id

3,重启:service mysql restart

连接客户端查看master状态:show master status;


 这样子已经能够充当master服务器

4在主服务器上创建相应的复制账号


grantreplication slave,replication client on *.* to tom@'192.168.0.%' identified by '111111';

flush privileges;

二、配从服务器

1,启动mysql查看salve状态:


2,修改my.cnf文件,找到相应位置并添加,


3在从服务器通过语句指定要复制的主服务器(注意,可以一主多从,不可一从多主).

changemaster tomaster_host='192.168.0.123',master_user='tom',master_password='111111',master_log_file='mysql-bin.000002',master_log_pos=120;

Master_host:master IP地址

Master_log_file:master日志文件名称

Master_log_pos:Position 状态号


4,查看slave连接状态:


5,连接master:


 


三、测试

Master:


 

Slave:

 

大功告成。

 

常用语句:

show master status ;查看master的状态,尤其是当前的日志及位置

show slave stattus;查看slave的状态.

reset slave ; 重置slave状态.

start slave ;启动slave状态(开始监听msater的变化)

stop slave;暂停slave状态;

 

主服务器的日志格式用哪种好?

statement,row, mixed3,其中mixed是指前2种的混合.

 

insert into xxtable values(x,y,z)为例,

影响: 1,且为新增1,对于其他行没有影响

这个情况,row格式,直接复制磁盘上1行的新增变化.

 

update xxtable set age=21where name=’sss’;

这个情况,一般也只是影响1.row也比较合适.

 

以过年发红包,全公司的人,都涨薪100.

update xxtable set salary=salary+100;

这个语句带来的影响,是针对每一行的,因此磁盘上很多row都发生了变化.

此处,适合就statment格式的日志.

 

2种日志,各有各的高效的地方,mysql提供了mixed类型.

可以根据语句的不同,而自动选择适合的日志格式.

 

 

 

 

 

 

 

 

0 0
原创粉丝点击