mysql slave 配置_Mysql-Master与Slave配置

今天在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的核心功能,看起来配置很简单,但是想真正实现安全、完成的复制还是需要很多工作的,以上只是一个简单的配置,如果需要更好的应用还需要深入的学习。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值