背景:因为工作的关系,需要找寻实时同步数据到另外系统的服务器的数据库上,查询下来,用mariadb进行跨服务器的同步数据动作,用主从同步比较多,也比较保险

也有使用shell脚本的,定时定候的执行mysqldump的shell脚本,但是如果crontab坏掉了,或是被取消,甚至时间被更改,数据库被改动密码等等,就需要做更多的异动,

但是shell脚本还是on the table的,可以深刻的考虑一下。

下面呢,就开始这次主从同步的设置经验。

前置准备:

先要将需要同步的表格数据利用mysqldump做一个同步,再进行接下来的主从同步是能够保证新增的users能够实时的跑到另外一个服务器上去

同步命令:

(主)==> 导出数据:

mysqldump -uroot -pPassword database table > 1.sql

  

(从)==> 导入数据:

mysql -uroot -pPassword  database < 1.sql

  

一、机器简介

主:192.168,60,130

从:192.168.60.129

OS版本:CentOS 7.4

mariaDB版本:5.5

二、配置主服务器

1)修改主服务器的mariadb配置文件

打开mariadb的配置文件/etc/my.cnf,在[mysqld]节点下添加如下的内容:

#表示主服务器
server-id = 1
#记录日志
log-bin=mysql-bin01
#提供数据同步服务的数据库,在此数据库下的数据可同步到从服务器中
binlog-do-db=#这里需要备份什么数据库就写什么数据库的名称
#设置在主服务器上不记录日志的数据库
binlog-ignore-db=mysql
#日志过期时间
expire_logs_days=10

  

注意: 如果配置文件已经存在了上述的项目,覆盖原有的即可

这里需要重启一下主服务器的数据库 ==> systemctl restart mariadb,要不然配置文件的修改不生效,无法继续下面的操作

2)查看主服务器的状态

此步骤要打开数据库命令行,输入命令:

MariaDB [mysql]> show master status;
+--------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+--------------------+----------+--------------+------------------+
| mysql-bin01.000004 | 1243 | tcloud | mysql |
+--------------------+----------+--------------+------------------+

这部分需要记住File和Position的值,到之后的配置需要使用

3)查看log_bin的状态

数据库命令行中,输入命令:

MariaDB [mysql]> show variables like "%log_bin%";
+---------------------------------+-------+
| Variable_name | Value |
+---------------------------------+-------+
| log_bin | ON |
| log_bin_trust_function_creators | OFF |
| sql_log_bin | ON |
+---------------------------------+-------+

  

此部分如果log_bin是ON,即表示正常开启。

4)创建主服务器用户及权限(专门为从服务器连接创建一个用户,和分配一个权限)

MariaDB [mysql] > grant replication slave on *.* to 'mysql'@'192.168.60.129' identified by '123456';

#解释:

这里是创建了一个mysql的用户,密码为123456,连接本机的数据库地址为从服务器的IP,即只允许该用户拥有从服务器的IP访问数据库并备份表的权限

  

这里还要注意一点:replication 属于grant权限,后面只能用*.*,不能指定某个数据库或者某个数据表,如果指定类似select等普通权限可具体到数据表。

5) 重启主服务器的mariadb

三、配置从服务器

1) 修改配置文件

打开配置文件/etc/my.cnf,在[mysqld]节点下增加如下内容:

#表示从服务器
server-id=2
#记录日志
log-bin=mysql-bin02
#同步的数据库
replicate-do-db=#要同步的数据库
#同步的数据库指定表
replicate-do-db=#要同步的表
#不记录日志的数据库
replicate-ignore-db=mysql
#日志过期时间
expire_logs_days=10

  

2) 打开命令行,执行一下命令,来设置master信息

change master to
master_host='192.168.60.130',#主服务器地址
master_user='mysql',#主服务器数据库用户名
master_password='123456',#主服务器数据库密码
master_log_file='mysql-bin01.000004', #填写步骤2(2)中File项的值
master_log_pos=1243; #填写步骤2(2)中Position的值

  

3) 重启从服务器mariadb

4) 执行启动从服务器命令(在从服务器数据库命令行进行)

MariaDB [mysql] > start slave;

  

5) 查看slave的运行状态命令

MariaDB [mysql] > start slave;

  

查看User值为system user的项,如果其State值为“Waiting for master to send event”和”Slave has read all relay log: waiting for the slave I/O thread to update it“,则从服务器已连接主服务器。

6) 查看slave运行状态

MariaDB [mysql] > show slave status;

  

如果Slave_IO_Running的值为Yes,Slave_SQL_Running的值为Yes,则从服务器正常运行。如果不正确,查看错误日志,一般位于data目录下。

四、测试

从服务器数据库中新建数据库pension,主服务器中新建表并插入数据,查看从服务器数据库,是否存在相同的数据库表及数据。

PS:

如果以上的修改没有正常,并且在中间出现的配置文件配置的问题,则需要先在从服务器的mariadb命令行里先stop slave,然后再修改其他的问题

修改完成后,去查看一下主服务器的状态是否已经改变 show master status(重点关注File和Position参数)

如果改变了要重新记下来,然后在slave的服务器上再次执行change master to .... ==> start slave (这样的过程)

记录一下mariadb设置主从同步的过程[虚拟机测试]的更多相关文章

  1. MySQL数据库主从同步实战过程

       Linux系统MySQL数据库主从同步实战过程 安装环境说明 系统环境: [root@~]# cat /etc/redhat-release CentOS release 6.5 (Final) ...

  2. centos 6.5 中设置mysql 5.1.73 主从同步配置过程

    本文章给大家介绍centos 6.5设置mysql主从同步过程记录,希望文章对各位会带来帮助.  涉及到的centos系统均为虚拟机,VM下安装的版本. 在centos 6.5上设置了mysql主从功 ...

  3. MySQL Replication 详解MySQL数据库设置主从同步的方法

    MySQL同步的流程大致如下:  1.主服务器(master)将变更事件(更新.删除.表结构改变等等)写入二进制日志(master log). 2.从服务器(slave)的IO线程从主服务器(binl ...

  4. MySQL数据库设置主从同步

    MySQL主从同步的机制: MySQL同步的流程大致如下: 1.主服务器(master)将变更事件(更新.删除.表结构改变等等)写入二进制日志(master log). 2.从服务器(slave)的I ...

  5. Linux 安装mysql,mariadb,mysql主从同步

    myariadb安装 centos7 mariadb的学习 在企业里面,多半不会使用阿里云的mariadb版本,因为版本太低,安全性太低,公司会配置myariadb官方的yum仓库 1.手动创建mar ...

  6. mariadb配置主从同步遇到的问题

    一:ERROR: No query specified 解决方案: \G后面不能再加分号;,因为\G在功能上等同于;,如果加了分号,那么就是;;(2个分号),SQL语法错误 二:主从同步不成功 Sla ...

  7. mysql设置主从同步

    1.主从同步定义 主从同步使得数据可以从一个数据库服务器复制到其他服务器上,在复制数据时,一个服务器充当主服务器(master),其余的服务器充当从服务器(slave).因为复制是异步进行的,所以从服 ...

  8. 搭建 mariadb 数据库主从同步

    一.主(master)数据库配置 1. my.cnf 添加配置 [mariadb] log-bin server_id=1 log-basename=master1 binlog-format=mix ...

  9. 主从同步工作过程?(binlog日志)

    在从数据库服务器的/var/lib/mysql/master.info   记录连接主数据库服务器信息文件mail-relay-bin.XXXXXX   中继日志文件(记录SQL)mail-relay ...

随机推荐

  1. BZOJ1113 [Poi2008]海报PLA 【分治 + 线段树】

    题目链接 BZOJ1113 题解 显然只与高有关,每次选择所有海报中最低的覆盖所有海报,然后分治两边 每个位置会被调用一次,复杂度\(O(nlogn)\) \(upd:\)智障了,,是一道\(O(n) ...

  2. python模块之 paramiko

    paramiko模块提供了ssh及sft进行远程登录服务器执行命令和上传下载文件的功能.这是一个第三方的软件包,使用之前需要安装. 1 基于用户名和密码的 sshclient 方式登录 # 建立一个s ...

  3. 遇到问题---java---@value注解为null

    Spring 3支持@value注解的方式获取properties文件中的配置值,大简化了读取配置文件的代码. 在xml文件中配置properties文件 例如 cas.authn.mongo.col ...

  4. linux Git版本控制学习与Git服务器搭建

    来源地址 要随时掌握工作区的状态,使用git status命令. 如果git status告诉你有文件被修改过,用git diff可以查看修改内容. 初始化一个Git仓库,使用git init命令. ...

  5. R语言--时间序列分析步骤

    大白. (1)根据趋势定差分 plot(lostjob,type="b") 查看图像总体趋势,确定如何差分 df1 = diff(lostjob)  d=1阶差分 s4_df1=d ...

  6. Cloudstack介绍(一)

    云计算的出现 基本上,云计算只是一种把 IT 资源当作服务来提供的手段.几乎所有 IT 资源都可以作为云服务来提供:应用程序.计算能力.存储容量.联网.编程工具,以至于通信服务和协作工具. 云计算最早 ...

  7. HTTP返回代码 403 404 500等代表的含义

    在网站日志中,我们经常会看到很多返回的http代码,如201.304.404.500等等.可是这些具体的返回的HTTP代码究竟什么含义呢,在此做一下知识普及吧,记不住不要紧,到时候看看就行了,但最主要 ...

  8. CIDR 无类别域间路由

    参考百度百科 1.全称 CIDR的全称是Classless Inter-Domain Routing 2.作用 CIDR将路由集中起来,使一个IP地址代表主要骨干提供商服务的几千个IP地址,从而减轻I ...

  9. IOS的__bridge

    使用 __bridge 关键字来实现id类型与void*类型的相互转换.看下面的例子. id obj = [[NSObject alloc] init]; void *p = (__bridge vo ...

  10. windows安装filebeat服务报错

    cmd进入filebeat目录下   用以下命令执行: PowerShell.exe -ExecutionPolicy UnRestricted -File .\install-service-fil ...