Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7171140
  • 博文数量: 3857
  • 博客积分: 6409
  • 博客等级: 准将
  • 技术积分: 15948
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-02 16:48
个人简介

迷彩 潜伏 隐蔽 伪装

文章分类

全部博文(3857)

文章存档

2017年(5)

2016年(63)

2015年(927)

2014年(677)

2013年(807)

2012年(1241)

2011年(67)

2010年(7)

2009年(36)

2008年(28)

分类: 高性能计算

2015-05-22 18:52:43

如何在 CentOS Linux 中配置 MariaDB 复制

[日期:2015-05-22] 来源:Linux中国  作者:Linux [字体:  ]

这是一个创建数据库重复版本的过程。复制过程不仅仅是复制一个数据库,同时也包括从主节点到一个从节点的更改同步。但这并不意味着从数据库就是和主数据库完全相同的副本,因为复制可以配置为只复制表结构、行或者列,这叫做局部复制。复制保证了特定的配置对象在不同的数据库之间保持一致。

Mariadb 复制概念

备份 :复制可以用来进行数据库备份。例如,当你做了主->从复制。如果主节点数据丢失(比如硬盘损坏),你可以从从节点中恢复你的数据库。

扩展 :你可以使用主->从复制作为扩展解决方案。例如,如果你有一些大的数据库以及SQL查询,使用复制你可以将这些查询分离到每个复制节点。写入操作的SQL应该只在主节点进行,而只读查询可以在从节点上进行。

分发解决方案 :你可以用复制来进行分发。例如,你可以将不同的销售数据分发到不同的数据库。

故障解决方案 : 假如你建立有主节点->从节点1->从节点2->从节点3的复制结构。你可以为主节点写脚本监控,如果主节点出故障了,脚本可以快速的将从节点1切换为新的主节点,这样复制结构变成了主节点->从节点1->从节点2,你的应用可以继续工作而不会停机。

复制的简单图解示范

mysql 复制原理

开始之前,你应该知道什么是二进制日志文件以及 Ibdata1。

二进制日志文件中包括关于数据库,数据和结构的所有更改的记录,以及每条语句的执行了多长时间。二进制日志文件包括一系列日志文件和一个索引文件。这意味着主要的SQL语句,例如CREATE, ALTER, INSERT, UPDATE 和 DELETE 会放到这个日志文件中;而例如SELECT这样的语句就不会被记录,它们可以被记录到普通的query.log文件中。

而 Ibdata1 简单的说据是一个包括所有表和所有数据库信息的文件。

--------------------------------------分割线 --------------------------------------

在 /RHEL/Scientific Linux 6 下安装 LAMP (Apache with MariaDB and PHP) 

MariaDB Proxy读写分离的实现 

Linux下编译安装配置MariaDB数据库的方法 

CentOS系统使用yum安装MariaDB数据库 

安装MariaDB与MySQL并存 

 上如何将 MySQL 5.5 数据库迁移到 MariaDB 10  

[翻译]Ubuntu 14.04 (Trusty) Server 安装 MariaDB  

--------------------------------------分割线 --------------------------------------

主服务器配置

首先升级服务器

  1. sudo yum install update -&& sudo yum install upgrade -y

我们工作在centos7 服务器上

  1. sudo cat /etc/-release
  2. CentOSLinux release 7.0.1406(Core)

安装 MariaDB

  1. sudo yum install mariadb-server -y

启动 MariaDB 并启用随服务器启动

  1. sudo systemctl start mariadb.service
  2. sudo systemctl enable mariadb.service

输出如下:

  1. ln -'/usr/lib/systemd/system/mariadb.service''/etc/systemd/system/multi-user.target.wants/mariadb.service'

检查 MariaDB 状态

  1. sudo service mariadb status

或者使用

  1. sudo systemctl is-active mariadb.service

输出如下:

  1. Redirecting to /bin/systemctl status mariadb.service
  2. mariadb.service -MariaDB database server
  3. Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled)

设置 MariaDB 密码

  1. mysql -u root
  2. mysql>use mysql;
  3. mysql> update user set password=PASSWORD("SOME_ROOT_PASSWORD")whereUser='root';
  4. mysql> flush privileges;
  5. mysql>exit

这里 SOME_ROOT_PASSWORD 是你的 root 密码。 例如我用"q"作为密码,然后尝试登录:

  1. sudo mysql -u root -pSOME_ROOT_PASSWORD

输出如下:

  1. Welcome to the MariaDB monitor.Commandsendwith;or \g.
  2. YourMariaDB connection id is5
  3. Server version:5.5.41-MariaDBMariaDBServer
  4. Copyright(c)2000,2014,,MariaDBCorporationAband others.

输入 'help;' 或 '\h' 查看帮助信息。 输入 '\c' 清空当前输入语句。

让我们创建包括一些数据的表的数据库

创建数据库/模式

  1. sudo mysql -u root -pSOME_ROOT_PASSWORD
  2. mysql> create database test_repl;

其中:

  1. test_repl -将要被复制的模式的名字

输出:如下

  1. Query OK,1 row affected (0.00 sec)

创建 Persons 表

  1. mysql>use test_repl;
  2. CREATE TABLE Persons(
  3. PersonIDint,
  4. LastName varchar(255),
  5. FirstName varchar(255),
  6. Address varchar(255),
  7. City varchar(255)
  8. );

输出如下:

  1. mysql>MariaDB[test_repl]> CREATE TABLE Persons(
  2. ->PersonIDint,
  3. ->LastName varchar(255),
  4. ->FirstName varchar(255),
  5. ->Address varchar(255),
  6. ->City varchar(255)
  7. ->);
  8. Query OK,0 rows affected (0.01 sec)

插入一些数据

  1. mysql> INSERT INTO Persons VALUES (1,"LastName1","FirstName1","Address1","City1");
  2. mysql> INSERT INTO Persons VALUES (2,"LastName2","FirstName2","Address2","City2");
  3. mysql> INSERT INTO Persons VALUES (3,"LastName3","FirstName3","Address3","City3");
  4. mysql> INSERT INTO Persons VALUES (4,"LastName4","FirstName4","Address4","City4");
  5. mysql> INSERT INTO Persons VALUES (5,"LastName5","FirstName5","Address5","City5");

输出如下:

  1. Query OK,5 row affected (0.00 sec)

检查数据

  1. mysql>select*fromPersons;

输出如下:

  1. +----------+-----------+------------+----------+-------+
  2. |PersonID|LastName|FirstName|Address|City|
  3. +----------+-----------+------------+----------+-------+
  4. |1|LastName1|FirstName1|Address1|City1|
  5. |1|LastName1|FirstName1|Address1|City1|
  6. |2|LastName2|FirstName2|Address2|City2|
  7. |3|LastName3|FirstName3|Address3|City3|
  8. |4|LastName4|FirstName4|Address4|City4|
  9. |5|LastName5|FirstName5|Address5|City5|
  10. +----------+-----------+------------+----------+-------+

更多详情见请继续阅读下一页的精彩内容: 

阅读(1036) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~