[ 登录 ][ 注册 ]
推荐信息新闻|CIO频道|专题|微软MVP大墙报|Tech ED 2011

Mysql-Master与Slave配置

今天在ubuntu下进行了mysql的Master和Slave的简单配置,基本上属于hello world的难度,但是看起来很简单,但真正做一遍,可不是那么的容易了……

  今天在ubuntu下进行了mysql的Master和Slave的简单配置,基本上属于hello world的难度,但是看起来很简单,但真正做一遍,可不是那么的容易了。

  环境:在两台电脑上,开启mysql服务。

  原理:在slave端会有两个线程负责同步工作,一个IO线程,负责将master中的bin log读取过来转换为relay log;另一个是sql线程,根据relay log执行sql语句。

  首先说一下大体的步骤,其实就是两部分,一部分是master端的配置,另一部分就是slave端的配置。

  一、master端的配置

  在master端,主要有两个事情需要做,一个是授权,另一个是修改配置文件。

  授权:grant replication slave on *.* to ‘slave’@34.34.34.34 identified by '123';

  配置文件:bind-address = 0.0.0.0 server-id = 1 log_bin = /var/log/mysql/mysql-bin.log

  bind-address改为0.0.0.0为了允许远程访问;server-id唯一表示该master;log-bin记录对数据库的日志,slave通过该文件同步。

  二、slave端的配置

  slave端的配置主要是让slave知道同步master的地址以及日志文件,可以通过两种方式实现,一种是直接在配置文件中设定参数,另一种是在mysql命令行中设定master。

  配置文件方式:在mysqld中添加下面的参数

以下是代码片段:
    server-id = 2
  master-host = 45.45.45.45
  master-user = slave
  master-password = 123
  master-port = 3306
  log_bin = /var/log/mysql/mysql-bin.log //本地的binlog文件
  relay_log    = /var/log/mysql/mysql-relay.log //转化成的relay_log文件
  master_log_file  = mysql-bin.000022      //master中的bin log文件
  master_log_pos  = 106          //从那个位置开始恢复

  命令行方式:

以下是代码片段:
change master to master_host='45.45.45.45', master_user='slave', master_password='123', master_port=3306, master_log_file='mysql-bin.000022', master_log_pos=106;

  这两种方式可以混合用,但server-id必须在配置文件中说明。

  配置完成之后,通过slave stop/start开启slave线程。

  通过 show slave status;查看线程的状态。

  第一次试验时出现io线程失败, 原因可能有三个:1、网络出现问题,2、my.cnf配置有问题,3、权限不对,如何看是那一种原因呐,可以查看error log,通过error log的提示查找错误。

  数据复制是mysql的核心功能,看起来配置很简单,但是想真正实现安全、完成的复制还是需要很多工作的,以上只是一个简单的配置,如果需要更好的应用还需要深入的学习。

责任编辑:夏果果

关键字:Mysql,其他数据库,数据库

白皮书

Informatica 9.5最大化大数据投资回报
Informatica公司近日宣布,发布其最新版本的Informatica平台——旨在为客户实现大数据最大投资回报的Informatica 9.5。大数据汇聚了三个相关但又不同的技术趋势……