實驗目的:

MariaDB為MySQL的一個分支,其完全開源、無版權之虞且操作上與 MySQL 一脈相承,實際應用中非常廣泛,軟件本身很小,安裝容易,使用簡單。

但其也有缺點,指令行方式操作,無原生GUI,如存在 Error ,則排查困難,各項命令參數亦不易理解。

此次實驗主要針對可能的分散性數據庫以MariaDB進行論證,探索其適用性。

實驗步驟:

  1. 在一臺Win電腦(192.168.101.200)安裝 MariaDB;
  2. 在一臺CentOS7電腦(192.168.101.201)安裝MariaDB;
  3. 將兩臺MariaDB分析建庫、建表,記錄 MASTER_LOG_FILE,MASTER_LOG_POS,以一臺為主,另一臺為從,設置主從複製。參考資料:(https://blog.51cto.com/suifu/1830682)

a)         首先給用戶授權:

Grant all privileges on *.* to ‘bruce’@’%’ identified by ‘cclcclccl’;

Flush privileges;

b)        然後在從機用IP(192.168.101.201:3306)連接,不通,經查,須設置 firewall:

# 將MariaDB端口開放

Firewall-cmd –zone=public –permanent –add-port=3306/tcp

# 重啟防火墻

Service firewalld restart

c)         重啟MariaDB:

Systemctl stop mariadb.service

Systemctl start mariadb.service

d)        在主機(192.168.101.201)設置備份:

Mysqldump -u bruce -p ccl –single-transaction –flush-logs –databases products –master-data=2 > 2.sql

Cat 2.sql | grep “CHANGE”

顯示:

--CHANGE MASTER TO MASTER_LOG_FILE=’mysql-bin.000003’, MASTER_LOG_POS=245;

記下。

在實驗過程中,MASTER_LOG_FILE一直為空,後來才知道需要在my.cnf中加入一行:log-bin=mysql-bin

e)        在從機(192.168.101.200)設置 Slave:

CHANGE MASTER  'Master201' TO MASTER_HOST='192.168.101.201',MASTER_USER='bruce',MASTER_PASSWORD= cclcclccl’,MASTER_PORT=3306,MASTER_LOG_FILE='mysql-bin.000003',MASTER_LOG_POS=245;

# 啟動

Start slave ‘Master201’;

# 顯示 Slave 狀態:

Show slave ‘Master201’ status \G;

# 查看 Slave_IO_Running:     Slave_SQL_Running:      兩項須都為 Yes.

f)          期間出現了錯誤:

Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work (or the --replicate-same-server-id option must be used on slave but this does not always make sense; please check the manual before using it).

Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Misconfigured master - server id was not set'

后經查需要在主從機設置 server_id, 在 CentOS 的 my.cnf 增加一行:server_id=10,  在從機執行: set global server_id=11; 須不重複。

g)         最終,在主機

CREATE TABLE test(

Id int(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,

Name nvarchar(20))

INSERT INTO TEST VALUES (1,’ABC’),(2,’DEF’),(3,’GHI’),(4,’XYZ’);

INSERT INTO TEST VALUES (5,’ABCDEFG’);

h)        在從機:

MariaDB [products]> select * from test;

+----+------+

| id | Name |

+----+------+

|  1 | ABC  |

|  2 | DEF  |

|  3 | GHI  |

|  4 | XYZ  |

+----+------+

4 rows in set (0.000 sec)

MariaDB [products]> select * from test;

+----+---------+

| id | Name    |

+----+---------+

|  1 | ABC     |

|  2 | DEF     |

|  3 | GHI     |

|  4 | XYZ     |

|  5 | ABCDEFG |

+----+---------+

5 rows in set (0.000 sec)

i)          END

實驗總結:

本次實驗完成了MariaDB間主從複製,但操作過程較繁瑣,且有些問題莫名其妙,查了很多資料才得以排除。從易用性和理解性上講,MSSQL更勝一籌,有原生GUI管理工具,在開發IDE中集中了DB對象資源管理器,易于調試;且和開發語言結合較緊密,有成熟的ORM可使用,可實現敏捷開發。

【Reference】:

https://blog.51cto.com/suifu/1830682

https://blog.csdn.net/mergerly/article/details/50068589

https://blog.51cto.com/coosh/1740217

https://blog.csdn.net/billfanggs/article/details/8905991

https://blog.csdn.net/edwzhang/article/details/17226975

https://blog.csdn.net/edwzhang/article/details/17226975

https://www.linuxidc.com/Linux/2012-02/54729.htm

https://www.jb51.net/article/27242.htm

https://www.cnblogs.com/mapu/p/9184212.html

https://www.jianshu.com/p/ada9f34d8563

https://www.cnblogs.com/cheyunhua/p/9896167.html

http://blog.chinaunix.net/uid-451-id-3143431.html

https://blog.51cto.com/asmboy001/197750

https://www.cnblogs.com/chuanzhang053/p/8710434.html

http://blog.chinaunix.net/uid-25266990-id-3465550.html

MariaDB 实现主从复制的更多相关文章

  1. MariaDB设置主从复制[转载]

     3. MariaDB设置主从复制 标签: mariadbMySQL主从复制 翻译人员: 铁锚 翻译日期: 2013年12月25日 原文链接:  Setting Up Replication 主从复制 ...

  2. Linux - centos7 下 MySQL(mariadb) 和 主从复制

    目录 Linux - centos7 下 MySQL(mariadb) 和 主从复制 MySQL(mariadb) 安装MySQL(mariadb) 配置数据库的中文支持 在远程用 mysql客户端去 ...

  3. Mariadb之主从复制的读写分离

    首先我们来回顾下代理的概念,所谓代理就是指的是一端面向客户端,另外一端面向服务端,代理客户端访问服务端,我们把这种代理叫正向代理:代理服务端响应客户端我们叫做反向代理,这个我们在之前nginx系列博客 ...

  4. 3. MariaDB设置主从复制

    翻译人员: 铁锚 翻译日期: 2013年12月25日 原文链接:  Setting Up Replication 主从复制包含两个步骤: 在 master 主服务器(组)上的设置,以及在 slave ...

  5. MariaDB数据库主从复制实现步骤

    一.MariaDB简介 MariaDB数据库的主从复制方案,是其自带的功能,并且主从复制并不是复制磁盘上的数据库文件,而是通过binlog日志复制到需要同步的从服务器上. MariaDB数据库支持单向 ...

  6. mariadb+centos7+主从复制

    MYSQL(mariadb) MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可.开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的 ...

  7. MariaDB设置主从复制

    主从复制包含两个步骤: 在 master 主服务器(组)上的设置,以及在 slave 从属服务器(组)上的设置. 配置主服务器 master 如果没有启用,则需要 激活二进制日志. 给 master ...

  8. Mariadb/Mysql 主从复制(1)

    一.原理 mysql的主从数据同步是一个异步复制过程,需要master开启bin-log日志功能,bin-log记录了master库中的增.删.修改.更新操作的sql语句,整个过程需要开启3个线程,分 ...

  9. Centos7 mariadb (mysql)主从复制实现

    一.mysql基本命令 .启动mysql systemctl start mariadb .linux客户端连接自己 mysql -uroot -p -h 127.0.0.1 .远程链接mysql服务 ...

  10. MariaDB数据库---主从复制,galera架构

    主从复制 补充一点:⑤slave端的IO thread 将从master端请求来的二进制日志文件中的内容存储到relay_log(中继日志)中 图片来源:https://www.cnblogs.com ...

随机推荐

  1. dubbo的扩展点重构

    可扩展设计是框架要重点考虑的设计,因为它直接影响到框架的稳定性和功能的扩展,Dubbo扩展点重构.它在扩展性设计上踩过的坑,值得框架设计者借鉴学习. 第一步,微核心,插件式,平等对待第三方 即然要扩展 ...

  2. SQL SERVER 判断是否存在数据库、表、列、视图

    SQL SERVER 判断是否存在数据库.表.列.视图 --1. 判断数据库是否存在 IF EXISTS (SELECT * FROM SYS.DATABASES WHERE NAME = '数据库名 ...

  3. 【转】Pro Android学习笔记(九):了解Content Provider(下下)

    Content provider作为信息的读出,比较常见的还有文件的读写,最基础的就是二进制文件的的读写,例如img文件,音频文件的读写.在数据库中存放了该文件的路径,我们可以通过ContentPro ...

  4. python set集合的用法

    python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和 ...

  5. css3中变形处理

    transfrom功能 在css3 中可以使用transfrom功能实现文字或图像的旋转,缩放,倾斜,移动等变形处理 deg是css3中使用的一种角度单位. 旋转: 使用rotate方法,在参数中加入 ...

  6. g2o中setparameterid(0,0)方法

    其中两个参数的含义: 第二个参数是优化器内添加的参数的id.当你调用addEdge来添加这条边时,会根据第二个参数的id,把相应的参数地址给边,以后边内的成员函数,就根据第一个参数,拿到这个地址.

  7. php array数组(第二部分)

    array_fill() 用给定的键值填充数组 参数 index 必须.规定返回数组的起始索引. 参数 number 必须.规定填充的元素的数量,其值必须大于0. 参数 value 必须.规定用于填充 ...

  8. linux多线程加解锁

    1.动态方式使用互斥量,该类型的互斥量在定义时不进行初始化,需要在使用之前初始化,使用结束销毁 1.1.定义一个锁变量:         pthread_mutex_t g_mutex_Msg; 1. ...

  9. 蓝桥杯 正则问题(dfs)

    1607: 正则问题 时间限制: 1 Sec  内存限制: 256 MB提交: 34  解决: 13[提交][状态][讨论版] 题目描述 考虑一种简单的正则表达式:只由 x ( ) | 组成的正则表达 ...

  10. 通用后台管理系统UI模板-AdminLTE简介及构造动态菜单栏

    AdminLTE是一款基于bootstrap的后台管理系统的通用模板UI,它的样式美观且较为符合大多数后台管理系统的需求,典型的上|左右|下的布局形式.并且提供了一整套我们开发的时候可能用到的UI样式 ...