mysql-proxy篇一

9 篇文章 0 订阅

mysql-proxy篇一

mysql-proxy是MySQL的代理服务,本服务可以实现的是MySQL的主从分离。好处是:

1、  分摊负载,提高服务器的相应的效率。

2、  提高服务器的稳定性,当主服务器发生宕机之后,从服务器依然能够提供服务。

在主从架构中,一般主服务器可以实现既可以读又可以写的操作,从服务器可以实现读的操作,因为主服务器不能复制数据到从服务器中,所以从服务器不能实现写操作。

下面结合MySQL5.6来演示下主从分离。

环境说明:192.168.5.1(master-server),192.168.5.2(slave-server),192.168.5.3(MySQL-proxy)。

1、安装MySQL5.6的过程忽略,如果有不太清楚的同学,可以参考我的编译安装MySQL5.5.28,方法基本一致。

2、修改配置文件

vi /etc/my.cnf

[mysqld]

datadir=/data/mydata           //指定数据目录

port=3306

socket=/tmp/mysql.sock       

server_id=1                   //保证主和从的server_id一定是唯一的。

log-bin=master-bin

binlog-format=ROW             //二进制日志的格式,有ROW,STATEMENT,mixed三种,建议使用的是ROW或者是mixed

log-slave-updates=true           //当slave应用复制的二进制日志信息时,是否把相应的信息记录到自己的二进制日志中去。

gtid-mode=on                  //MySQL5.6之后提供了GTID就是多进程复制。on表示打开。

enforce-gtid-consistency=true      //强制打开gtid一致性

master-info-repository=TABLE      //master-server用于记录每个slave主机复制的文件名称,文件位置,以及slave登录的用户名密码都信息,有两种方式,FILE或者是TABLE,如果是是file的话那么在数据库的数据目录底下会有相应的文件。TABLE的时候在MySQL库里面有相应的表存储相应的信息。

relay-log-info-repository=TABLE   //slave连接的master的信息。复制的文件的名称,以及文件的位置等。

sync-master-info=1        //指定当事务提交之后,立刻同步到二进制日志文件中。

slave-parallel-workers=2    //开启的复制进程的数量。每一个库在复制的过程中只能使用一个复制进程。

binlog-checksum=CRC32

master-verify-checksum=1          //校验的参数。

binlog-rows-query-log_events=1

report-port=3306         //slave主机通告给master自己的参数

report-host=master.hello.com   //主机的名称。

slave-server的配置

mysqld]

binlog-format=ROW

log-slave-updates=true

gtid-mode=on

enforce-gtid-consistency=true

master-info-repository=TABLE

relay-log-info-repository=TABLE

sync-master-info=1

slave-parallel-workers=2

binlog-checksum=CRC32

master-verify-checksum=1

slave-sql-verify-checksum=1

binlog-rows-query-log_events=1

server-id=11    //确保和master的不一样。

report-port=3306

port=3306

log-bin=mysql-bin.log   //如果需要从服务器时刻保持有可能成为主服务器的可能,那么就打开二进制日志的功能,否则不开启。

datadir=/mydata/data

socket=/tmp/mysql.sock

report-host=slave.hello.com

 

下面启动MySQL

service mysqld start

3、  在处服务器上面建立复制的账号,并在从slave上面开启复制

mysql> grant  replication slave on *.* to‘repluser’@’192.16.8.5.2’ identified by ‘replpass’;

mysql>flush privileges;

从服务器上面开始复制

mysql>change master to

master_host=’192.168.5.1’,

master_user=’replpass’,

master_password=’replpass’,

master_auto_position=1;

mysql>start slave //开启slave的复制。

note:mysql5.5和MySQL5.6的不同在于,MySQL5.5没有gtid的功能所以在连接到master上面的时候,需要指定二进制日志的文件名称和位置:

master_log_file=master-bin.000000X

master_log_postion=num                 //在复制之前在主上面showmaster status查看。

连接后就可以进行复制了。另外可以再主serve上面show slave hosts进行查看连接的从服务器的情况。另外show master status可以显示已经执行了事务的情况。(包括执行了多少个事务)

ending…MySQL-proxy的功能见下面的博客。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值