永远不要跟别人比幸运,我从来没想过我比别人幸运,我也许比他们更有毅力,在最困难的时候,他们熬不住了,我可以多熬一秒钟、两秒钟,甚至更久。

Mysql 的主从复制(理论篇)

数据库 新民 945℃ 已收录 0评论

1、复制的基本原理:

Slave 会从 master 读取 binlog 来进行数据同步;

复制图解:

 

Mysql 复制过程分为三步:

(1)master 将改变记录到二进制日志(binary log)。这些记录过程叫做二进制日志事件,binary log events.

(2)Slave 将 master 的binary log events 拷贝到它的中继日志(relay log);

(3)Slave重做中继日志中的时间,将改变应用的自己的数据库中,Mysql 复制是异步的且串行化的。

2、复制的基本原则:

(1)每个slave 只有一个master

(2)每个salve 只能由一个唯一的服务器ID

(3)每个master 可以有多个slave。

3、复制的最大问题:延时

4、一主一从常见配置:

(1)mysql 版本一致且 后台以服务运行。

(2)主从都配置在[mysqld] 下,且都是小写

(3)主机修改cnf 配置文件

1)服务器ID(必须):server-id=1

2)启用二进制日志(必须):log-bin=/usr/share/mysql/mysqlMaster/mysqlbin

3)启用错误日志(可选):log-err=/usr/share/mysql/mysqlMaster/mysqlerr

4)根目录(可选):basedir=/usr/share/mysql

5)临时目录(可选):tmpdir=/usr/share/mysql/mysqlMaster/tmpdir

6)数据目录(可选):datadir=/var/lib/mysql

7)主机都写都可以(可选):read-only=0

8)设置不需要复制的数据库(可选):binlog-ignore-db=mysql

9)设置需要复制的数据库(可选):binlog-do-db=需要复制的主数据名称

(4)修改过配置文件,请主机+丛机都重启后台mysql 服务;

(5)从机修改my.cnf 配置文件:

1)从机服务器唯一ID:server-id=2

2)启用二进制日志(可选)

(6)在master 上建立用户并授权给slave:

GRANT REPLICATION SLAVE ON  *.*  TO  ‘zhangsan’@’从机数据库IP或者%’ IDENTIFIED BY ‘密码’;

Flush privileges;

(7)登录主服务器的myql,查看master 的状态:

Show master status;

 

参数说明:

1)File:主服务器mysql的二进制日志

2)Position:主服务器mysql的二进制日志文件中的哪一行开始进行主从复制

3)Binlog_Do_DB:要复制的数据库

4)Binlog_ignore_DB:忽略的数据库(不复制)

 

(8)在从机上配置需要复制的主机:

Change master to master_host=’主机IP’, master_user=’zhangsan’,master_password=’123456’,master_log_file=’File名字’,master_log_pos=Position数字;

(9)启动从服务器复制功能:Start slave;

(10)查看从服务器复制状态:

Show slave status\G

 

 

其中:Slave_IO_Running  和 Slave_SQL_Running 必须同时为yes,否则主从复制配置失败;            (11)主机新建库,新建表,insert 记录,从机复制

(12)如何停止从服务器复制功能:stop slave;

本站文章如未注明,均为原创丨本网站采用BY-NC-SA协议进行授权,转载请注明转自:http://www.snowruin.com/?p=1691
喜欢 (3)or分享 (0)
发表我的评论
取消评论
表情 代码 贴图 加粗 链接 私信 删除线 签到

Hi,请填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址