Mariadb数据复制功能实现

实验环境:两台服务器IP:192.168.1.117;IP:192.168.1.118.

实验目的:实现数据库横向扩展。

实验方案:服务器192.168.1.117作为主节点,服务器192.168.1.118.作为从节点。

实验步骤:分为五步来完成实验,首先数据库安装,其次主从节点配置,再次复制功能实现,最后做测试。

一、数据库的安装

在此安装mariadb-5.5.42-linux-x86_64版本。

[[email protected] ~]# mkdir -pv /mydata/data     //创建目录,做数据存储位置。实际应用中应挂硬盘。

mkdir: created directory `/mydata‘

mkdir: created directory `/mydata/data‘

[[email protected] ~]# useradd mysql          //创建mysql用户。

[[email protected] ~]# chown -R mysql.mysql /mydata/data

[[email protected] mariadb]# ls

mariadb-5.5.42-linux-x86_64.tar.gz

[[email protected] mariadb]# tar xf mariadb-5.5.42-linux-x86_64.tar.gz -C /usr/local/

[[email protected] ~]# cd /usr/local

[[email protected] local]# ln -sv mariadb-5.5.42-linux-x86_64 mysql    //解压之后,创建链接文件。

`mysql‘ -> `mariadb-5.5.42-linux-x86_64‘

[[email protected] local]# cd mysql

[[email protected] mysql]# chown -R root.mysql ./*

[[email protected] mysql]# mkdir /etc/mysql  //在此创建目录放MySQL的配置文件。

[[email protected] mysql]# cp support-files/my-large.cnf /etc/mysql/my.cnf //mysql的配置文件。

[[email protected] mysql]# vim /etc/mysql/my.cnf

datadir=/mydata/data

[[email protected] mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld

cp: overwrite `/etc/rc.d/init.d/mysqld‘? yes

[[email protected] mysql]# chmod +x /etc/rc.d/init.d/mysqld

[[email protected] mysql]# scripts/mysql_install_db --datadir=/mydata/data --user=mysql//数据库的初始化。

[[email protected] mysql]# mkdir -pv /mydata/{binlogs,relaylogs}  //二进制日志和中继日志存放位置。

mkdir: created directory `/mydata/binlogs‘

mkdir: created directory `/mydata/relaylogs‘

[[email protected] mysql]#

[[email protected] mysql]# chown -R mysql.mysql /mydata/  //为/mydata/目录下的所有文件定义成mysql用户mysql组。

[[email protected] mysql]# vim /etc/profile.d/mysql.sh     //配置mysql的PATH路径。

export PATH=/usr/local/mysql/bin:$PATH

[[email protected] mysql]# source /etc/profile.d/mysql.sh  //到此处mariadb的安装基本完成。

二、数据库的主从节点配置

[[email protected] mysql]# vim /etc/mysql/my.cnf     //在此定义主节点,此时切换到

log-bin=/mydata/binlogs/mysql-master-bin

binlog_format=mixed

server-id       = 1

[[email protected] mysql]# vim /etc/mysql/my.cnf     //在此定义从节点。

relay-log=/mydata/relaylogs/mysql-relay-log

# log-bin=mysql-bin

# binlog_format=mixed

server-id       = 11

[[email protected] mysql]# service mysqld start

Starting MySQL.....                                        [  OK  ]

[[email protected] mysql]# mysql   //启动之后即可以

Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 2

Server version: 5.5.42-MariaDB MariaDB Server

Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

MariaDB [(none)]>

三、数据库的复制功能实现

在主节点上,创建有复制权限的账号。

MariaDB [(none)]> GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO [email protected]‘192.168.1.118‘ IDENTIFIED BY ‘repass‘;

Query OK, 0 rows affected (0.06 sec)

MariaDB [(none)]> FLUSH PRIVILEGES;

Query OK, 0 rows affected (0.12 sec)

MariaDB [(none)]> SHOW MASTER STATUS;

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

| File                    | Position | Binlog_Do_DB | Binlog_Ignore_DB |

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

| mysql-master-bin.000002 |      745 |              |                  |

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

1 row in set (0.00 sec)

在从节点上使用有复制权限的账号链接master。

MariaDB [(none)]> CHANGE MASTER TO MASTER_HOST=‘192.168.1.117‘,MASTER_USER=‘reuser‘,MASTER_PASSWORD=‘repass‘,MASTER_LOG_FILE=‘mysql-master-bin.000002‘,MASTER_LOG_POS=745;

Query OK, 0 rows affected (0.22 sec)

MariaDB [(none)]> SHOW SLAVE STATUS\G;  //下面只是一部分。

*************************** 1. row ***************************

Slave_IO_State:

Master_Host: 192.168.1.117

Master_User: reuser

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-master-bin.000002

Read_Master_Log_Pos: 745

Relay_Log_File: mysql-relay-log.000001

Relay_Log_Pos: 4

Relay_Master_Log_File: mysql-master-bin.000002

Slave_IO_Running: No

Slave_SQL_Running: No    //io线程和sql线程均未启动。

在从节点数据io线程和sql线程的开启。

MariaDB [(none)]> START SLAVE;

Query OK, 0 rows affected (0.12 sec)

MariaDB [(none)]> SHOW SLAVE STATUS\G;   //再次查看已开启。

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 192.168.1.117

Master_User: reuser

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-master-bin.000002

Read_Master_Log_Pos: 832

Relay_Log_File: mysql-relay-log.000002

Relay_Log_Pos: 623

Relay_Master_Log_File: mysql-master-bin.000002

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

四、做下测试,现在主节点上创建一个数据库,而后查看从节点上数据库

MariaDB [(none)]> CREATE DATABASE dbtest;

Query OK, 1 row affected (0.05 sec)

MariaDB [(none)]> SHOW DATABASES;

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

| Database           |

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

| information_schema |

| dbtest             |

| mysql              |

| performance_schema |

| test               |

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

5 rows in set (0.06 sec)

MariaDB [(none)]>

MariaDB [(none)]> SHOW DATABASES; //在从节点上查看数据库信息,很明显实验成功了。

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

| Database           |

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

| information_schema |

| dbtest             |

| mysql              |

| performance_schema |

| test               |

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

5 rows in set (0.30 sec)

MariaDB [(none)]>

时间: 2024-11-05 19:19:30

Mariadb数据复制功能实现的相关文章

CentOS 6.5 MySQL/MariaDB数据备份与恢复备份详解

MySQL/MariaDB数据备份与恢复备份 数据对我们来说再重要不过了,那我们如何做到对数据尽可能的安全呢,当我们的数据丢失了那又该怎么做呢,所以说数据备份对我们的数据安全性来说太重要了. 数据对我们来说再熟悉不过了,也最平常不过了,我们每天都在接触各色各样的数据,数据记录了我们平常相关的业务信息,所以数据对于我们来说是很重要的,这么重要的数据如果我们的数据丢失了那我们是不是相关的业务都没法进行了呢,这应该是个很麻烦的问题,那我们怎么保护我们的数据的安全呢,这就要用到我们的数据备份了. 如何执

Tomcat部署SL商城系统并连接MariaDB数据

tomcat连接数据库这个实验要求要有论坛或者是商城系统66主机 : nginx . tomcat . 商城系统67主机:tomcat .商城系统~~~~~~~~~~~~~~~~~~~~~66主机操作:[1]上传商城系统代码包:SLSaleSystem.tar.gz[[email protected] ~]# tar xf SLSaleSystem.tar.gz -C /web/webapp/[[email protected] ~]# ls /web/webapp/index.jsp  SLS

MariaDB数据解压版安装(10.0.16)

官网下载地址:https://downloads.mariadb.org/    (自己选择版本下载) 在windows 7 下安装 1.下载到解压版安装文件mariadb-10.0.16-win32.zip,把它解压到d:/mariaDB目录下 2.打开解压目录,然后找到my-large,my-medium,my-small,三个文件,根据你的电脑的 配置进行选择,我这里选择的是my-large文件. 右击编辑,编辑(黑色部分是需要自己添加的): [client] #password = po

MariaDB 备份与日志管理(13)

MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可MariaDB的目的是完全兼容MySQL,包括API和命令行,MySQL由于现在闭源了,而能轻松成为MySQL的代替品.在存储引擎方面,使用XtraDB来代替MySQL的InnoDB,MariaDB由MySQL的创始人Michael Widenius主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购MySQL的所有权也落入Oracle的手中.M

heartbeat v1 实现 MariaDB数据库的高可用

MariaDB数据库服务的高可用: 使用 heartbeat v1 版实现两个节点的 MariaDB数据库服务的高可用. 节点: node1        192.168.60.33 node2        192.168.60.88 MySQL数据库的数据文件使用nfs共享文件系统解决 nfs Server       192.168.60.22 架构如下图: 一.heartbeat 节点之间通信要求的设置: (1).解决节点的主机名解析 因为 heartbeat 的节点间通讯基于名称.基于

centos7安装mariadb(mysql的替代品)

mariadb做为mysql的替代品 现在centos的新版本yum包已换成mariadb 安装一些库 yum install gcc gcc-c++ wget net-tools 复制代码 查看SELinux状态: /usr/sbin/sestatus -v 复制代码 #如果SELinux status参数为enabled即为开启状态;如果为关闭可以跳过修改/etc/selinux/config文件 vi /etc/selinux/config 复制代码 将SELINUX=enforcing改

C中级 MariaDB Connector/C API 编程教程

引言 - 环境搭建 首先开始环境搭建. 主要在Window 10 + Visual Studio 2015 上构建使用 mariadb connector/c api 进行数据操作开发. 为什么选择在window上搭建开发环境呢? 最核考虑是 更 方便 看源码!!! 记得以前也写过一个在ubuntu上mariadb api开发教程, 有兴趣也可以参照看一下, 数据库层api是一样的. c基础 mariadb处理简单案例 http://www.cnblogs.com/life2refuel/p/5

Centos7 安装 mariadb

centos7 以后mysql 被mariadb代替 根据资料,mariadb数据库的启动命令是: systemctl start mariadb  #启动MariaDB systemctl stop mariadb  #停止MariaDB systemctl restart mariadb  #重启MariaDB systemctl enable mariadb  #设置开机启动 我执行以上命令,没有任何返回值.看来得研究一下mariadb数据了.

数据库之mariadb整体概述

一.数据库的安装方式及其安装步骤  1.安装方式 rpm包安装,yum安装,二进制包安装,编译安装 2.安装步骤 (本文是使用二进制包安装) 1)下载mariadb相应版本的数据库,解压 tar xf mariadb-5.5.48-linux-86_64.tar.gz -C /usr/local/ 2)创建软链接及其创建用户和存放数据目录和授权其目录文件 cd /usr/local ln -sv mariasb-5.5.48 mysql chown -R root.mysql mysql gro