背景:因为工作的关系,需要找寻实时同步数据到另外系统的服务器的数据库上,查询下来,用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. 【BZOJ3294】放棋子(动态规划,容斥,组合数学)

    [BZOJ3294]放棋子(动态规划,容斥,组合数学) 题面 BZOJ 洛谷 题解 如果某一行某一列被某一种颜色给占了,那么在考虑其他行的时候可以直接把这些行和这些列给丢掉. 那么我们就可以写出一个\ ...

  2. Min Cost Climbing Stairs - LeetCode

    目录 题目链接 注意点 解法 小结 题目链接 Min Cost Climbing Stairs - LeetCode 注意点 注意边界条件 解法 解法一:这道题也是一道dp题.dp[i]表示爬到第i层 ...

  3. 【BZOJ4709】【Jsoi2011】柠檬

    Description 传送门 题意简述:将序列划分成任意多段,从每一段选出一个数\(x\),获得\(在这一段出现的次数x*(x在这一段出现的次数)\)的贡献.求总贡献最大值. Solution ​ ...

  4. BZOJ3522 [Poi2014]Hotel 【树形dp】

    题目链接 BZOJ3522 题解 就是询问每个点来自不同子树离它等距的三个点的个数 数据支持\(O(n^2)\),可以对每个距离分开做 设\(f[i][j]\)表示\(i\)的子树中到\(i\)距离为 ...

  5. BZOJ2802 [Poi2012]Warehouse Store 【贪心】

    题目链接 BZOJ2802 题解 这样的问题通常逆序贪心 每个\(A[i]\)只能用来满足后面的\(B[i]\) 就用当前\(A[i]\)不断提供给最小的\(B[i]\)即可 用一个堆维护 #incl ...

  6. 【bzoj1026】 SCOI2009—windy数

    http://www.lydsy.com/JudgeOnline/problem.php?id=1026 (题目链接) 题意 在区间${[A,B]}$有多少个数相邻两个数位上的数之差至少为2. Sol ...

  7. 我们为什么要迁移PHP到HHVM

    我们为什么要迁移PHP到HHVM 程序员日志 · 2014-12-26 18:33 简介 该调研是2013年10月份做的,目标是寻找更好的PHP引擎,来代替百度各产品线正在使用的PHP 5.2. 环境 ...

  8. bzoj2300【HAOI2011】防线修建

    题目描述 近来A国和B国的矛盾激化,为了预防不测,A国准备修建一条长长的防线,当然修建防线的话,肯定要把需要保护的城市修在防线内部了.可是A国上层现在还犹豫不决,到底该把哪些城市作为保护对象呢?又由于 ...

  9. RAC的坑

    http://www.cocoachina.com/industry/20140609/8737.html 1.对数组的观察 有了这些Category,大部分的Delegate都可以使用RAC来做.或 ...

  10. grep与正则表达式详解和实例

    转载自:http://www.jb51.net/article/31207.htm grep 工具,以前介绍过. grep -[acinv] '搜索内容串' filename -a 以文本文件方式搜索 ...