centos7配置mysql的主从复制

主 192.168.2.10

从192.168.2.11

先配置主mysql

vi /etc/my.cnf

找到 [mysqld] 并在其后添加如下配置:
唯一标识此 MySQL 服务器,默认值为 1,一般采用所属 IP 的末端值
server-id=1

二进制日志文件名字,MySQL 主服务器必须启用此配置
log-bin=master-bin-log

MySQL 主服务器中参与主从复制的数据库名;如果有多个数据库,则此参数可以有多个,每行一个,分部对应不同的数据库
binlog-do-db=db_master_backup
MySQL 主服务器中二进制日志文件的索引名
og-bin-index=master-bin-log.index

创建数据库 db_master_backup

create database db_master_backup;

创建用户 backup,并设置密码 backup_123456:
create user ‘backup‘@‘%‘ identified by ‘backup_123456‘;

为用户backup 赋权对 db_master_backup 数据库的所有权限:
 grant all on db_master_backup.* to ‘backup‘@‘%‘;

为用户backup 赋本地访问的权限:
grant all privileges on db_master_backup.* to ‘backup‘@‘localhost‘ identified by ‘backup_123456‘;

授权从服务器可以通过 backup 用户访问主服务器:
grant replication slave on *.* to ‘backup‘@‘%‘ identified by ‘backup_123456‘ with grant option;

配置从数据库

vi /etc/my.cnf

# 唯一标识此 MySQL 服务器,默认值为 1,一般采用所属 IP 的末端值
server-id=2
# MySQL 从服务器的日志索引文件名

relay-log-index=slave-relay-log.index
# MySQL 从服务器的日志文件名

relay-log=slave-relay-log

创建数据库 db_master_backup

create database db_master_backup;

重启两个mysql服务

查看主服务器的状态:
show master status;

在从服务上执行如下配置:

change master to master_host=‘192.168.2.10‘,        // 主服务器IP
master_port=3306,
master_user=‘user_master‘,
master_password=‘Password_Master_123456‘,
master_log_file=‘master-bin-log.000001‘,    // 主服务器 master_log_file 的值
master_log_pos=364;    // 主服务器 master_log_pos 的值

mysql> stop slave;

mysql> start slave;

执行 show slave status \G

如果有Error reading packet from server for channel ‘‘: Could not find first log file name in binary log index file 报错

解决步骤:

重启master库:service mysqld restart

mysql> show master status;

在从库上执行

mysql> stop slave;

mysql> change master to Master_Log_File=‘master-bin-log.000002‘,Master_Log_Pos=154;

mysql> slave start;

mysql> show slave status\G

在 MySQL master 服务器的 db_master_backup 库中为用户名 t_user 添加数据:
mysql> insert into t_user(id, name) values(1, ‘idea1‘);
mysql> select * from t_user;

在主服务器上建立脚本向t_user中插入数据

#!/bin/bash
i=1;
MAX_INSERT_ROW_COUNT=$1;
while [ $i -lt 100 ]
do
    mysql -uroot -p123456 db_master_backup -e "insert into t_user () values (‘$i‘,$i);"
    echo "INSERT HELLO $i @@ $d"
    i=$(($i+1))
    sleep 0.05
done
exit 0

在从数据库中查看数据是否同步

mysql> select * from t_user;

时间: 2024-10-18 03:29:06

centos7配置mysql的主从复制的相关文章

配置MySQL GTID 主从复制

GTID是一个基于原始mysql服务器生成的一个已经被成功执行的全局事务ID,它由服务器ID以及事务ID组合而成.这个全局事务ID不仅仅在原始服务器器上唯一,在所有存在主从关系 的mysql服务器上也是唯一的.正是因为这样一个特性使得mysql的主从复制变得更加简单,以及数据库一致性更可靠.本文主要描述了快速配置一个基于GTID的主从复制架构,供大家参考. 一.GTID的概念 1.全局事务标识:global transaction identifiers.2.GTID是一个事务一一对应,并且全局

Centos7配置mysql主从:一主多从

mysql主从复制原理1.首先master将数据更新记录到二进制binlog文件2.slave通过I/O线程向master请求binlog日志文件指定位置之后的内容3.master接收到slave的io请求之后,就会从binlog相应的位置点开始,给slave传日志4.slave接收到日志后,会写入本地的relay log中继日志中5.slave通过sql线程读取中继日志的内容,在数据库中执行相应的操作,到此为止,master和slave上的数据一致,之后slave服务器进入等待状态,等待mas

配置mysql数据库主从复制

一.    原理说明 复制有以下三个步骤: (a)主服务器把数据更改记录到二进制日志中.(这叫做二进制日志事件(binary log events).) (b)从服务器把主服务器的二进制日志事件拷贝到自己的中继日志(relay log)中. (c)从服务器重放中继日志中的事件,把更改用到自己的数据上. 第一步:在主服务器上记录二进制日志.在每个更新数据的事务完成之前,主服务器都会把数据更改记录到二进制日志中.即使事务在执行期间是交错的,mysql也会串行地把事务写入到二进制日志中.在把事件写入到

配置mysql的主从复制

mysql版本:5.6 主服务器的ip:192.168.134.178 从服务器的ip:192.168.134.180 现在主从机器分别安装mysql的5.6版本,安装过程省略: 1 修改主服务器的mysql配置文件:   #vi /etc/my.cnf       [mysqld]       log-bin=mysql-bin   //[必须]启用二进制日志       server-id=222      //[必须]服务器唯一ID,默认是1,一般取IP最后一段 2 修改从服务器slave

mysql/mariadb主从复制架构配置及过程中出现的问题

两台CentOS7系虚拟主机:分别是:主服务器172.16.75.1,从服务器172.16.75.2使用的是mariadb-5.5.56,即centOS自带的软件版本为了使实验结果显示精准,此处关闭两台服务器的防火墙和SELinux:[[email protected] ~]# setenforce 0[[email protected] ~]# iptables -F 一.首先在主服务器172.16.75.1上配置:在/etc/my.cnf中配置如下:[mysqld]###定义二进制日志的存放

配置MYSQL基于GTID 主从复制详细解析及步骤

GTID的概念 全局事务标识:global transaction identifiers GTID是一个事务一一对应,并且全局唯一ID GTID在一个服务器上只执行一次,避免重复执行导致数据混乱或主从不一致 GTID用来代替传统复制方法,不再使用MASTER_LOG_FILE+MASTER_LOG_POS开启复制.而是使用MASTER_AUTO_POSTION=1的方式开始复制. MySQL-5.6.5开始支持的,MySQL-5.6.10后开始完善. 在传统的slave端,binlog是不用开

Mysql中主从复制的原理、配置过程以及实际案例

Mysql中主从复制的原理.配置过程以及实际案例1.什么是主从复制?原理:主从分离,什么意思呢?我们不妨画个图看看.如图1所示: 2.准备工作:预备两台服务器,我这里使用虚拟机安装了两个Centos6.7_64位操作系统,并分别在两台服务器上安装mysql.我的IP地址分别为:192.168.1.15/192.168.1.16,这里我定义15为主服务器,16为从服务器.首先,我们编辑主服务器中mysql配置文件.(因我的mysql使用非root用户安装,因此配置文件放在/home/formal/

[原创]Centos7 从零编译配置MySQL

序言 这次玩次狠得.除了编译器使用yum安装,其他全部手动编译.哼~ 看似就Nginx.PHP.MySql三个东东,但是它们太尼玛依赖别人了. 没办法,想用它们就得老老实实给它们提供想要的东西. 首先的一些模块依赖一些lib库, 如果你是懒人,就顺着下面的命令分别输入就行了.然后直接看配置篇.(不过这样安装的可不是最新版本的哟) 目录 一.Centos7 从零编译配置Nginx 二.Centos7 从零编译配置PHP 三.Centos7 从零编译配置MySQL 一.准备工作 1.1 安装或更新g

MySQL的主从复制介绍及配置

1.MySQL主从复制介绍 MySQL数据库支持单向.双向.链式级联.环状等不同业务场景的复制.在复制过程中,一台服务器充当主服务器(Master),接收来自用户的内容更新,而一个或多个其他的服务器充当从服务器(Slave),接收来自主服务器binlog文件的日志内容,解析出SQL,重新更新到从数据库,使得主从服务器的数据达到一致. 如果设置了链式级联复制,那么从服务器本身除了充当从服务器外,也会同时充当其下面从服务器的主服务器,链式级联复制类似A->B->C的复制形式.在这里,只介绍主-&g