MariaDB 实现主从复制
實驗目的:
MariaDB為MySQL的一個分支,其完全開源、無版權之虞且操作上與 MySQL 一脈相承,實際應用中非常廣泛,軟件本身很小,安裝容易,使用簡單。
但其也有缺點,指令行方式操作,無原生GUI,如存在 Error ,則排查困難,各項命令參數亦不易理解。
此次實驗主要針對可能的分散性數據庫以MariaDB進行論證,探索其適用性。
實驗步驟:
- 在一臺Win電腦(192.168.101.200)安裝 MariaDB;
- 在一臺CentOS7電腦(192.168.101.201)安裝MariaDB;
- 將兩臺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 实现主从复制的更多相关文章
- MariaDB设置主从复制[转载]
3. MariaDB设置主从复制 标签: mariadbMySQL主从复制 翻译人员: 铁锚 翻译日期: 2013年12月25日 原文链接: Setting Up Replication 主从复制 ...
- Linux - centos7 下 MySQL(mariadb) 和 主从复制
目录 Linux - centos7 下 MySQL(mariadb) 和 主从复制 MySQL(mariadb) 安装MySQL(mariadb) 配置数据库的中文支持 在远程用 mysql客户端去 ...
- Mariadb之主从复制的读写分离
首先我们来回顾下代理的概念,所谓代理就是指的是一端面向客户端,另外一端面向服务端,代理客户端访问服务端,我们把这种代理叫正向代理:代理服务端响应客户端我们叫做反向代理,这个我们在之前nginx系列博客 ...
- 3. MariaDB设置主从复制
翻译人员: 铁锚 翻译日期: 2013年12月25日 原文链接: Setting Up Replication 主从复制包含两个步骤: 在 master 主服务器(组)上的设置,以及在 slave ...
- MariaDB数据库主从复制实现步骤
一.MariaDB简介 MariaDB数据库的主从复制方案,是其自带的功能,并且主从复制并不是复制磁盘上的数据库文件,而是通过binlog日志复制到需要同步的从服务器上. MariaDB数据库支持单向 ...
- mariadb+centos7+主从复制
MYSQL(mariadb) MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可.开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的 ...
- MariaDB设置主从复制
主从复制包含两个步骤: 在 master 主服务器(组)上的设置,以及在 slave 从属服务器(组)上的设置. 配置主服务器 master 如果没有启用,则需要 激活二进制日志. 给 master ...
- Mariadb/Mysql 主从复制(1)
一.原理 mysql的主从数据同步是一个异步复制过程,需要master开启bin-log日志功能,bin-log记录了master库中的增.删.修改.更新操作的sql语句,整个过程需要开启3个线程,分 ...
- Centos7 mariadb (mysql)主从复制实现
一.mysql基本命令 .启动mysql systemctl start mariadb .linux客户端连接自己 mysql -uroot -p -h 127.0.0.1 .远程链接mysql服务 ...
- MariaDB数据库---主从复制,galera架构
主从复制 补充一点:⑤slave端的IO thread 将从master端请求来的二进制日志文件中的内容存储到relay_log(中继日志)中 图片来源:https://www.cnblogs.com ...
随机推荐
- Python 实现「食行生鲜」签到领积分
用过食行生鲜的同学应该知道,每天可以在食行生鲜签到,签到可以领到 20 积分,在购物时可以抵 2 毛钱.钱虽少,但是积少成多,买菜时可以抵扣一两块钱还是不错的. 今天我们就用 Python 来实现自动 ...
- bzoj 4003: 城池攻占 左偏树
题目大意 http://www.lydsy.com/JudgeOnline/problem.php?id=4003 题解 一开始看漏条件了 题目保证当占领城池可以使攻击力乘上\(v_i\)时,一定有\ ...
- vs2012解决scanf,printf编译出错的问题
转自http://www.th7.cn/Program/c/201303/127343.shtml 在VS 2012 中编译 C 语言项目,如果使用了 scanf 函数,编译时便会提示如下错误: er ...
- Oracle中的float类型字段
Oracle中的float类型对应着C#中的decimal类型
- Ubuntu Java环境变量配置
# java homeJAVA_HOME=/usr/local/jdk/jdk1.8.0_121JRE_HOME=JAVA_HOME/jreCLASSPATH=.:$JAVA_HOME/lib:$JR ...
- 常见的post提交数据类型
原文地址:https://www.cnblogs.com/yoyoketang/p/6771696.html 常见的post提交数据类型有四种: 1.第一种:application/json:这是最常 ...
- 三台主机搭建LAMP(apache、mariadb、php)
实验环境:均是CentOS7 httpd:172.16.254.88 2.4.6 PHP:172.16.250.140 5.4.16 mariadb:172.16.250.94 5.5.52 第三 ...
- 将eclipse java程序打包成jar的总结(包括工程中没有引用外部jar包和有引用外部jar包两种情况)
一.当eclispe java工程中没有引用外部jar包时: 选中工程---->右键,Export...--->Java--->JAR file--->next-->填写 ...
- wireshark里无网络接口解决办法
管理员模式下开启npf服务,该服务能捕获网络接口,net start npf
- 利用 druid 的 sql parser 模块解析 sql 语句
druid 是阿里开源在 github 上面的数据库连接池,里面有一个专门解析 sql 语句的模块 源码位置: https://github.com/alibaba/druid SQL Parse ...