码迷,mamicode.com
首页 > 数据库 > 详细

MySQL主从复制

时间:2016-06-04 19:18:22      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:

数据库复制 replication 的实现原理:

1:主服务器凡运行语句,都产生一个二进制日志 binlog

2:从服务器不断读取主服务器的binlog

3:从服务器读取到的binlog转换为自身可执行的relaylog

4:执行relaylog

实现步骤:

1.首先确保主服务器打开二进制日志功能,这样,主服务器一旦有数据变化,立即产生二进制日志

2.从服务器也需要开启二进制日志和relay日志功能,这样可以从主服务器读取binlog并产生relaylog

3.在主服务器建立一个从服务器的账号,并授予读binlog的权限

4.指定从服务对应的主服务器,开启从服务器

具体实施:

现虚拟机下有2台linux,ip分别为192.168.153.158,192.168.153.159

1.158作为主服务器

2.159作为从服务器

3:保证主从3306端口互通

4:配置主服务器打开binlog

#给服务器起一个唯一的id

server-id=1

#开启二进制日志

log-bin=mysql-bin

#日志格式

binlog-format=mixed/row/statement

statement:2进制记录执行语句,如update....

row:2进制记录的是磁盘变化

语句长而磁盘变化少,宜用row,语句短,但影响上万行,磁盘变化大,宜用statement

mixed,混合的,由系统根据语句来决定

--给服务器起一个独特的id
server-id=158
--声明2进制日志文件为mysql-bin.xxxx
log-bin=mysql-bin
--二进制日志的格式 mixed/row/statement
binlog_format=mixed

重启mysql

5.配置从服务器

server-id=159
log-bin=mysql-bin
relay-log=mysql-relay
binlog-format=mixed

重启mysql

主服务器授权用户

grant replication client,replication slave on *.* to repl@192.168.153.% identified by repl;
flush privileges;

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

change master to 
master_host=192.168.153.158,
master_user=repl,
master_password=repl,
master_log_file=mysql-bin.000001,
master_log_pos=98;

启动

start slave

至此,最简单的mysql主从复制即配置完成。

这里只是实现了主从复制,读写分离还没有实现,可以从应用层去实现,也可以用集群中间件如

官方的mysql_proxy,另外就是国产的中间件 amoeba

MySQL主从复制

标签:

原文地址:http://www.cnblogs.com/gimin/p/5559206.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!