MYSQL设置主从同步

首先,我们先拿两台服务器安装好相同版本相同设置的MYSQL数据库。我这里安装的是mariadb-10.0.13数据库。

第一步,环境设置:

我这边设置的是两台内网服务器,主服务器IP:10.6.0.187;从服务器IP10.6.0.186

系统:CentOS 7

数据库版本:mariadb-10.0.13

第二步:配置mysql主服务器(10.6.0.187)

mysql  -uroot  -p123456    #进入MySQL控制台
    create database zabbix default charset utf8;

#建立数据库zabbix
    insert into mysql.user(Host,User,Password) values(‘localhost‘,‘slave2‘,password(‘123456‘));

#创建用户slave2

#建立MySQL主从数据库同步用户slave2密码123456

flush privileges;   #刷新系统授权表

#授权用户slave2只能从10.6.0.186这个IP访问主服务器10.6.0.187上面的数据库,并且只具有数据库备份的权限
    grant replication slave  on *.* to ‘ slave2‘@‘10.6.0.186‘identified by ‘123456‘ with grant option;

第三步:将主服务器中的数据库导出,并导入到从服务器的数据库中去

1、导出数据库zabbix

mysql dump-u root -p123456 zabbix> /root/zabbix.sql   #在MySQL主服务器进行操作,导出数据库zabbix到/root/zabbix.sql

备注:在导出之前可以先进入MySQL控制台执行下面命令

flush tables with read lock;    #数据库只读锁定命令,防止导出数据库的时候有数据写入

unlocktables;   #解除锁定

2、导入数据库到MySQL从服务器

mysql -uroot-p123456  #进入从服务器MySQL控制台

create database zabbix default charset utf8;   #创建数据库

mysqldump -u root -p123456 zabbix< /root/zabbix.sql

mysql -uslave2 -h192.168.21.169 -p  #测试是否能从从服务器上登录到主服务器

第四步:修改主数据库的配置文件

vi/etc/my.cnf   #编辑配置文件

server-id=1   #设置服务器id,为1表示主服务器,给 slave 指定唯一的server_id. 所有服务器,不管是主服务器,还是从服务器,都要设置 server_id. server_id值可以是整数型的数字(1 ~ 2^31-1),在同一个复制组(replicating group)中的每台(/个)服务器的server_id都必须是唯一的.
log_bin=mysql-bin  #启动MySQ二进制日志系统,注意:如果原来的配置文件中已经有这一行,就不用再添加了。
binlog-do-db=zabbix  #需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行
binlog-ignore-db=mysql   #不同步mysql系统数据库
service mysqld restart  #重启MySQL
mysql -uroot -p   #进入mysql控制台
show master status;  查看主服务器,出现以下类似信息

注意:这里记住File的值:mysql-bin.000035和Position的值:1218606,后面会用到。

五、配置MySQL从服务器的my.cnf文件
vi/etc/my.cnf   #编辑配置文件
server-id=2   #配置文件中已经有一行server-id=1,修改其值为2,表示为从数据库
log-bin=mysql-bin  #启动MySQ二进制日志系统,注意:如果原来的配置文件中已经有这一行,就不用再添加了。
replicate-do-db=zabbix   #需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行
replicate-ignore-db=mysql   #不同步mysql系统数据库
:wq!    #保存退出
service mysqld restart   #重启MySQL
mysql  -u root -p  #进入MySQL控制台
stop slave;   #停止slave同步进程
change master to master_host=‘10.6.0.187‘,master_user=‘slave2‘,master_password=‘123456‘,master_log_file=‘ mysql-bin.000035‘ ,master_log_pos=1218606;    #执行同步语句
start slave;    #开启slave同步进程
SHOW SLAVE STATUS\G   #查看slave同步信息,出现以下内容

注意查看:
Slave_IO_Running: Yes
Slave_SQL_Running:Yes

以上这两个参数的值为Yes,即说明配置成功!

第六步:测试mysql主从是否能够同步

进入主mysql中的zabbix库中,创建一张新表

use zabbix;

create table test (`id` int(4), `name` char(40));

这是主mysql中创建的表;

在从mysql中查看是否同步过来了这张表

use zabbix;

show tables;

这里我们看到已经同步过来了,至此,mysql主从同步实验做完了。

在此,感谢网上大神们的教程,让我成功的完成了mysql主从配置。互联网的精神就是共享,在此我将我配置mysql主从中得经验分享给大家,以供我们大家共同学习,共同成长。

时间: 2024-10-07 10:24:31

MYSQL设置主从同步的相关文章

mysql数据库主从同步

环境: Mater:   CentOS7.1  5.5.52-MariaDB  192.168.108.133 Slave:   CentOS7.1  5.5.52-MariaDB  192.168.108.140 1.导出主服务数据,将主备初始数据同步 master: //从master上导出需要同步的数据库信息 mysqldump -u*** -p*** --database test > test.sql //将master上的备份信息传输到slave上 scp /root/test.sq

mysql 设置主从

mysql 设置主从 Table of Contents 主从 扩展升级 读写分离: 主主复制: 互为主从, 也叫双主 数据分片, 分区 (高级, 难) 主从 主从: 异步实现 slave 的 IO thread 当有数据需要同步的时候, master 的 bin log dump 会传给 slave 的 IO thread, 否则 slave 会睡眠 slave 的 sql thread 负责将 bin log 从 master 下载到 slave mysql 二进制日志文件 statemen

linux下mysql数据库主从同步配置

说明: 操作系统:CentOS 5.x 64位 MySQL数据库版本:mysql-5.5.35 MySQL主服务器:192.168.21.128 MySQL从服务器:192.168.21.129 准备篇: 说明:在两台MySQL服务器192.168.21.128和192.168.21.129上分别进行如下操作 备注: 作为主从服务器的MySQL版本建议使用同一版本! 或者必须保证主服务器的MySQL版本要高于从服务器的MySQL版本! 一.配置好IP.DNS .网关,确保使用远程连接工具能够连接

MySQL双机主从同步与双向同步

第一部分:主从关系的同步 master端 192.168.0.1 slave端  192.168.0.2 1.MASTER端 a.进入mysql,创建一个数据库abc:       create database abc; b.创建一个用来同步的用户,指定只能在192.168.0.2登录:       grant replication slave on *.* to 'ha'@'192.168.0.2' identified by 'hapwd'; c.修改master端的/etc/my.cn

Mysql Replication 主从同步

简介: Mysql 的主从同步功能,这种解决方案是企业很常见的一种.常用于备份数据库,当客户端操作主库时,主库会产生binlog日志文件, 从库通过复制主库的binlog日志文件,然后解析成相应的 SQL 语句在从库执行,实现主从一致的效果. 这种解决方案只提供了日志的同步执行功能,而从库只能提供读操作,当主服务器发生故障时,必须手动处理故障转移,一般情况下的做法是将一台从服务器改为主服务器. Master : 192.168.1.88Slave : 192.168.1.80 一.配置 Mast

MYSQL配置主从同步

MYSQL配置主从同步 mysql主服务器配置 vim /etc/my.cnf [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock symbolic-links=0 lower_case_table_names=1 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES #设置数据库标识 server-id=2 #任何一个事务提交之后就立即写入到磁盘中的二进制文件 syn

谈谈Mysql数据库主从同步延迟分析及解决方案

一.MySQL的数据库主从复制原理 MySQL主从复制实际上基于二进制日志,原理可以用一张图来表示: 分为四步走: 1. 主库对所有DDL和DML产生的日志写进binlog: 2. 主库生成一个 log dump 线程,用来给从库I/O线程读取binlog: 3. 从库的I/O Thread去请求主库的binlog,并将得到的binlog日志写到relay log文件中: 4. 从库的SQL Thread会读取relay log文件中的日志解析成具体操作,将主库的DDL和DML操作事件重放. 关

MySQL数据库主从同步部署

MySQL数据库主从同步部署: 环境 Mater:   CentOS6.4  mysql5.5.38  192.168.107.133 Slave:   CentOS6.4  mysql5.5.38  192.168.107.135 1.导出主服务数据,将主备初始数据同步 master: //从master上导出需要同步的数据库信息 mysqldump -u*** -p*** --database test > test.sql //将master上的备份信息传输到slave上 scp /roo

【转】MySQL数据库主从同步管理

MYSQL主从同步架构是目前使用最多的数据库架构之一,尤其是负载比较大的网站,因此对于主从同步的管理也就显得非常重要,新手往往在出现主从同步错误的时候不知道如何入手,这篇文章就是根据自己的经验来详细叙述mysql主从的管理. MYSQL主从同步的作用 (1) 数据分布 (2) 负载平衡(load balancing) (3) 备份 (4) 高可用性(high availability)和容错 MYSQL主从同步的原理 关于MYSQL的主从同步,最主要的是要了解MYSQL的主从同步是如何工作的也即