背景:因为工作的关系,需要找寻实时同步数据到另外系统的服务器的数据库上,查询下来,用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. 【科技】KD-tree随想

    大概就是个复杂度对的暴力做法,在你不想写二维线段树等的时候优秀的替代品. 优点:思路简单,代码好写. 他大概有两种用法(虽然差不多). 在平面坐标系中干一些事情: 例如最常规的平面最近最远点,不管是欧 ...

  2. linux内核设计与实现一书阅读整理 之第十八章

    CHAPTER 18 调试 18.1 准备开始 需要的是准备是: - 一个bug - 一个藏匿bug的内核版本 - 相关内核代码的知识和运气 重点: 想要成功的进行调试,就取决于是否能让这些错误重现. ...

  3. mysqlbinlog- 处理二进制日志文件的实用工具 学习笔记

    参考 MySQL 5.5官方简体中文参考手册完美版  8.6 节 调用: shell> mysqlbinlog [option] log-files... mysqlbinlog支持下面选项: ...

  4. Hadoop生态圈-hive优化手段-作业和查询优化

    Hadoop生态圈-hive优化手段-作业和查询优化 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.

  5. VS项目属性的一些配置项的总结(important)

    以下内容为“原创”+“转载” 首先,解决方案和项目文件夹包含关系(c++项目): VS解决方案和各个项目文件夹以及解决方案和各个项目对应的配置文件包含关系,假设新建一个项目ssyy,解决方案起名fan ...

  6. Hi35xx 通用GPIO 使用篇(板子3G电源控制脚说明)

    在一个嵌入式系统中使用最多的莫过于 通用输入输出 GPIO口.看到论坛中经常有朋友问海思为什么没有提供GPIO驱动.其实不然. 在海思SDK  xxx/osdrv/tools/board_tools/ ...

  7. 批量更新demo

    因为批量更新数据库的时候,如果数据量太多,就会报错,这时候可以通过逻辑,批量更新,demo如下 @Test public void testbatch() { /** * 批量的值 */ int ma ...

  8. 蓝桥杯 算法提高 学霸的迷宫 经典BFS问题

      算法提高 学霸的迷宫   时间限制:1.0s   内存限制:256.0MB      问题描述 学霸抢走了大家的作业,班长为了帮同学们找回作业,决定去找学霸决斗.但学霸为了不要别人打扰,住在一个城 ...

  9. ZeroMQ API(一) 总序

    序 zeromq是一个轻量级的消息库.它扩展了标准的套接字接口,其特性与传统的消息中间件不同,zeromq提供异步消息队列.多消息传递模式.消息过滤(订阅).无缝访问多个传输协议等的抽象. 本系列AP ...

  10. java 数字转换成字符串

    一.各种数字类型转换成字符串型:  public static void main(String[] args) { double value = 123456.123; String str = S ...