热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

debian6squeeze系统安装配置mariadbgaleracluster5.5数据库

为什么是MariaDB,为什么是Galera,为什么是Debian,这些闲话都不说了,直入正题。1.在两台机器上分别安装MariaDBGaleraCluster,可以使用两个虚拟机,互相之间IP可以ping通即可。由于apt-get是如此好用,因此请保证你的Debian可以联网,然后执行:#apt
为什么是MariaDB,为什么是Galera,为什么是Debian,这些闲话都不说了,直入正题。

1. 在两台机器上分别安装MariaDB Galera Cluster,可以使用两个虚拟机,互相之间IP可以ping通即可。
由于apt-get是如此好用,因此请保证你的Debian可以联网,然后执行:
# apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
# cd /etc/apt/sources.list.d/
--创建MariaDB.list文件
# vi MariaDB.list
--添加如下内容
# MariaDB 5.5 repository list - created 2013-04-25 09:13 UTC
# http://mariadb.org/mariadb/repositories/
deb http://mirrors.fe.up.pt/pub/mariadb/repo/5.5/debian squeeze main
deb-src http://mirrors.fe.up.pt/pub/mariadb/repo/5.5/debian squeeze main
--更新apt资源
# apt-get update
# apt-cache search mariadb
libmariadbclient-dev - MariaDB database development files
libmariadbclient18 - MariaDB database client library
libmariadbd-dev - MariaDB embedded database development files
libmysqlclient18 - Virtual package to satisfy external depends
mariadb-client - MariaDB database client (metapackage depending on the latest version)
mariadb-client-5.5 - MariaDB database client binaries
mariadb-client-core-5.5 - MariaDB database core client binaries
mariadb-common - MariaDB database common files (e.g. /etc/mysql/conf.d/mariadb.cnf)
mariadb-galera-server - MariaDB database server with Galera cluster
mariadb-galera-server-5.5 - MariaDB database server with Galera cluster binaries
mariadb-server - MariaDB database server (metapackage depending on the latest version)
mariadb-server-5.5 - MariaDB database server binaries
mariadb-server-core-5.5 - MariaDB database core server files
mariadb-test - MariaDB database regression test suite (metapackage depending on the latest version)
mariadb-test-5.5 - MariaDB database regression test suite
mysql-common - MariaDB database common files (e.g. /etc/mysql/my.cnf)
--只需要安装mariadb-galera-server即可,注意,会自动卸载Debian中预装的MySQL 5.1
# apt-get install mariadb-galera-server
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  galera libaio1 libmariadbclient18 libmysqlclient18 mariadb-client-5.5 mariadb-client-core-5.5 mariadb-common mariadb-galera-server-5.5
Suggested packages:
  tinyca mariadb-test
The following packages will be REMOVED:
  mysql-client-5.1 mysql-server mysql-server-5.1 mysql-server-core-5.1
The following NEW packages will be installed:
  galera libaio1 libmariadbclient18 libmysqlclient18 mariadb-client-5.5 mariadb-client-core-5.5 mariadb-common mariadb-galera-server mariadb-galera-server-5.5
0 upgraded, 9 newly installed, 4 to remove and 46 not upgraded.
Need to get 32.3 MB of archives.
After this operation, 55.2 MB of additional disk space will be used.
Do you want to continue [Y/n]?

2. 修改my.cnf文件,修改或者添加如下行,在两个节点中都修改。
# vi /etc/mysql/my.cnf
wsrep_cluster_name = my_test_cluster
wsrep_node_name = debian
wsrep_provider = /usr/lib/galera/libgalera_smm.so
wsrep_sst_method = mysqldump
binlog_format=ROW
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
innodb_locks_unsafe_for_binlog=1
--注意,默认配置MariiaDB只监听localhost,因此需要修改bind-address参数
第一个节点:bind-address              = 192.168.1.108
第二个节点:bind-address              = 192.168.1.109

3. 启动第一个节点
--如果之前数据库已经启动,可以先关闭
# /etc/init.d/mysql stop
--启动MariaDB Galera Cluster
# /usr/bin/mysqld_safe --wsrep_cluster_address=gcomm:// > /dev/null 2>&1 &

4. 启动第二个节点
--其中192.168.1.108是第一个节点MariaDB的监听IP
# /usr/bin/mysqld_safe --wsrep_cluster_address=gcomm://192.168.1.108 > /dev/null 2>&1 &

5. 检查整个Cluster状态
--随便登入任何一台机器的MariaDB
# mysql
MariaDB [(none)]> show status like 'wsrep%';
+----------------------------+---------------------------------------+
| Variable_name              | Value                                 |
+----------------------------+---------------------------------------+
| wsrep_local_state_uuid     | 5947fd92-adb9-11e2-0800-8d35ba835f31  |
| wsrep_protocol_version     | 4                                     |
| wsrep_last_committed       | 9                                     |
| wsrep_replicated           | 0                                     |
| wsrep_replicated_bytes     | 0                                     |
| wsrep_received             | 2                                     |
| wsrep_received_bytes       | 198                                   |
| wsrep_local_commits        | 0                                     |
| wsrep_local_cert_failures  | 0                                     |
| wsrep_local_bf_aborts      | 0                                     |
| wsrep_local_replays        | 0                                     |
| wsrep_local_send_queue     | 0                                     |
| wsrep_local_send_queue_avg | 0.000000                              |
| wsrep_local_recv_queue     | 0                                     |
| wsrep_local_recv_queue_avg | 0.000000                              |
| wsrep_flow_control_paused  | 0.000000                              |
| wsrep_flow_control_sent    | 0                                     |
| wsrep_flow_control_recv    | 0                                     |
| wsrep_cert_deps_distance   | 0.000000                              |
| wsrep_apply_oooe           | 0.000000                              |
| wsrep_apply_oool           | 0.000000                              |
| wsrep_apply_window         | 0.000000                              |
| wsrep_commit_oooe          | 0.000000                              |
| wsrep_commit_oool          | 0.000000                              |
| wsrep_commit_window        | 0.000000                              |
| wsrep_local_state          | 4                                     |
| wsrep_local_state_comment  | Synced                                |
| wsrep_cert_index_size      | 0                                     |
| wsrep_causal_reads         | 0                                     |
| wsrep_incoming_addresses   | 192.168.1.108:3306,192.168.1.109:3306 |
| wsrep_cluster_conf_id      | 6                                     |
| wsrep_cluster_size         | 2                                     |
| wsrep_cluster_state_uuid   | 5947fd92-adb9-11e2-0800-8d35ba835f31  |
| wsrep_cluster_status       | Primary                               |
| wsrep_connected            | ON                                    |
| wsrep_local_index          | 0                                     |
| wsrep_provider_name        | Galera                                |
| wsrep_provider_vendor      | Codership Oy      |
| wsrep_provider_version     | 23.2.4(r147)                          |
| wsrep_ready                | ON                                    |
+----------------------------+---------------------------------------+
40 rows in set (0.00 sec)

6. 测试双活读写
--任选一个节点创建数据库,创建表,插入数据
MariaDB [(none)]> CREATE DATABASE IF NOT EXISTS my_db default charset utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.01 sec)
MariaDB [(none)]> connect my_db
Connection id:    8
Current database: my_db
MariaDB [my_db]> create table my_table (name varchar(20) not null default '') default charset utf8;
Query OK, 0 rows affected (0.00 sec)
MariaDB [my_db]> insert into my_table values('enmotech');
Query OK, 1 row affected (0.00 sec)
--在另一个节点查询并更新
MariaDB [my_db]> select * from my_table;
+----------+
| name     |
+----------+
| enmotech |
+----------+
1 row in set (0.00 sec)
MariaDB [my_db]> update my_table set name='enmotech_mysql' where name='enmotech';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0
--在之前的节点查询
MariaDB [my_db]> select * from my_table;
+----------------+
| name           |
+----------------+
| enmotech_mysql |
+----------------+
1 row in set (0.00 sec)

本文仅仅是最简单的安装及功能测试,不论健壮性、高效性、容错性如何,至少这种双活数据库的配置比起Oracle的任何一种解决方案都简单。

推荐阅读
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 本文详细介绍了在 Ubuntu 16.04 系统中使用 APT-GET 包管理器安装 MySQL 5.7 数据库的过程,并对安装后的文件和目录结构进行了说明,包括重要的配置文件及其功能。 ... [详细]
  • 当我在命令行登录MySQL后,无法访问任何依赖数据库连接的PHP应用。此问题每次都会出现。以下是复现问题的具体步骤及解决方案。 ... [详细]
  • Linux虚拟机中MySQL安装指南
    本文详细介绍了如何在Linux虚拟机上安装MySQL,包括解决常见问题的方法和步骤。 ... [详细]
  • 在 Ubuntu 22.04 LTS 上部署 Jira 敏捷项目管理工具
    Jira 敏捷项目管理工具专为软件开发团队设计,旨在以高效、有序的方式管理项目、问题和任务。该工具提供了灵活且可定制的工作流程,能够根据项目需求进行调整。本文将详细介绍如何在 Ubuntu 22.04 LTS 上安装和配置 Jira。 ... [详细]
  • 通过Web界面管理Linux日志的解决方案
    本指南介绍了一种利用rsyslog、MariaDB和LogAnalyzer搭建集中式日志管理平台的方法,使用户可以通过Web界面查看和分析Linux系统的日志记录。此方案不仅适用于服务器环境,还提供了详细的步骤来确保系统的稳定性和安全性。 ... [详细]
  • 目录一、salt-job管理#job存放数据目录#缓存时间设置#Others二、returns模块配置job数据入库#配置returns返回值信息#mysql安全设置#创建模块相关 ... [详细]
  • 本文介绍了如何在Ubuntu 16.04系统上配置Nginx服务器,以便能够通过网络访问存储在服务器上的图片资源。这解决了在网页开发中需要使用自定义在线图标的需求。 ... [详细]
  • 本文探讨了Unix和Linux操作系统的起源和发展历程。从20世纪60年代计算机技术的初期阶段,到Unix的诞生及后续Linux的崛起,文章详细介绍了这些操作系统如何逐步成为现代计算不可或缺的一部分。 ... [详细]
  • 在Ubuntu 14.04 (Desktop AMD64) 上安装与配置ROS Indigo
    本文档详细介绍了如何在Ubuntu 14.04 (Desktop AMD64) 系统上安装和配置ROS Indigo。包括设置软件源、安装ROS核心组件、初始化rosdep以及创建ROS工作空间等步骤。 ... [详细]
  • 利用 Calcurse 在 Linux 终端高效管理日程与任务
    对于喜爱使用 Linux 终端进行日常操作的系统管理员来说,Calcurse 提供了一种强大的方式来管理日程安排、待办事项及会议。本文将详细介绍如何在 Linux 上安装和使用 Calcurse,帮助用户更有效地组织工作。 ... [详细]
  • 本文介绍了Linux操作系统的核心组成部分——内核及其版本分类,以及市面上常见的几种Linux发行版,旨在为初学者提供一个清晰的学习路径。 ... [详细]
  • 本文介绍了如何在Linux系统中获取库源码,并在从源代码编译软件时收集所需的依赖项列表。 ... [详细]
  • 在 Ubuntu 中遇到 Samba 服务器故障时,尝试卸载并重新安装 Samba 发现配置文件未重新生成。本文介绍了解决该问题的方法。 ... [详细]
  • Parallels Desktop for Mac 是一款功能强大的虚拟化软件,能够在不重启的情况下实现在同一台电脑上无缝切换和使用 Windows 和 macOS 系统中的各种应用程序。该软件不仅提供了高效稳定的性能,还支持多种高级功能,如拖放文件、共享剪贴板等,极大地提升了用户的生产力和使用体验。 ... [详细]
author-avatar
赵乙潘_107
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有