데이터 베이스 MySQL 튜토리얼 heartbeat v1 实现 MariaDB数据库的高可用

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

Jun 07, 2016 pm 04:48 PM
mariadb

MariaDB数据库服务的高可用:使用heartbeatv1版实现两个节点的MariaDB数据库服务的高可用。节点:node1192.168.60.33node2192.168.60...

MariaDB数据库服务的高可用:

使用 heartbeat v1 版实现两个节点的 MariaDB数据库服务的高可用。

节点:

    node1        192.168.60.33

    node2        192.168.60.88

MySQL数据库的数据文件使用nfs共享文件系统解决

nfs Server       192.168.60.22

架构如下图:

wKiom1QMRl3gE_cJAAIe0TaKqHs158.jpg

一、heartbeat 节点之间通信要求的设置;

(1)、解决节点的主机名解析

因为 heartbeat 的节点间通讯基于名称。基于名称进行通讯就要实现域名解析:而名称解析有两种方法:

A、 基于本地hosts 文件实现主机名到IP地址的解析; B、 使用DNS域名服务器进行域名解析;

基于效率等方面考虑,使用本地hosts 文件进行主名与IP地址的解析。

把 192.168.60.88 主机设置为HA高可用的节点2 node2. 

设置基于本地hosts文件实现域名解析

[root@nfs admin]# echo "192.168.60.88 node2.9527du.com node2" > /etc/hosts [root@nfs admin]# echo "192.168.60.33 node1.9527du.com node2" >> /etc/hosts

把配置好的hosts 文件复制一份到另一节点:

[root@nfs admin]# scp -p /etc/hosts root@192.168.60.33

(2)、给HA高可用集群的各节点设置主机名

A)、设置192.168.60.88主机的主机名为:node2.9527du.com

[root@nfs admin]# vim /etc/sysconfig/network HOSTNAME=node2.9527du.com

使用【hostname】命令设置主机名立即生效

[root@nfs admin]# hostname node2.9527du.com

测试主机名能否解析成功

[root@nfs admin]# ping -c 1 node2.9527du.com PING node2.9527du.com (192.168.60.88) 56(84) bytes of data. 64 bytes from node2.9527du.com (192.168.60.88): icmp_seq=1 ttl=64 time=0.010 ms --- node2.9527du.com ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.010/0.010/0.010/0.000 ms

B)、设置192.168.60.33主机的主机名为:node1.9527du.com

[root@www admin]# vim /etc/sysconfig/network HOSTNAME=node2.9527du.com

使用【hostname】命令设置主机名立即生效

[root@www admin]# hostname node1.9527du.com

检测使用hosts文件是否能够解析主机名

[root@www admin]# ping -c 1 node2.9527du.com PING node2.9527du.com (192.168.60.88) 56(84) bytes of data. 64 bytes from node2.9527du.com (192.168.60.88): icmp_seq=1 ttl=64 time=0.010 ms --- node2.9527du.com ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.010/0.010/0.010/0.000 ms[root@node2 admin]# ping -c 1 node1.9527du.com PING node1.9527du.com (192.168.60.33) 56(84) bytes of data. 64 bytes from node1.9527du.com (192.168.60.33): icmp_seq=1 ttl=64 time=0.010 ms --- node1.9527du.com ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.010/0.010/0.010/0.000 ms

说明:

    从上面测试结果,已经两个节点都可以成功实现主机名的解析。


2、为了操作heartbeat 方便,把两节点配置成信任主机。不需要口令就可以直接通信。

(1)、建立基于密钥通讯

在node1节点生成密钥对

[root@node1 ha.d]# ssh-keygen -t rsa

把“公钥”拷贝到 node2 节点

[root@node1 ha.d]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.60.33

在 node2 节点生成密钥对

[root@node2 ~]# ssh-keygen -t rsa

把“公钥”拷贝到 node1 节点

[root@node2 ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.60.88

(2)、测试基于密钥是否能够实现无障碍通讯

[root@node1 ha.d]# ssh node2 -- 'hostname' node2.9527du.com [root@node2 ~]# ssh node1 'hostname' node1.9527.com

说明:

    从上述测试结果,两节点已经能够实现基于密钥实现通讯。



二、配置 node1 和 node2 节点的mysql用户都有 nfs 共享文件系统的:rwx 权限

    使用nfs服务器共享MySQL的数据文件,用户向MySQL数据库服务器,发起SQL操作时,MySQL数据库服务器以mysql用户的身份执行用户对数据库的操作的。

    所以,mysql用户一定要有 nfs 服务器导出的共享文件系统的:"读/写“ 权限。

而根据 nfs 的资源访问控制模型:

(1)、在nfs服务器导出的文件系统中要有读写权限。意思是说:nfs设置导出共享文件系统时,要授权客户端有:读写权限。 (2)、往nfs共享文件系统中读写数据的用户映射到nfs服务器的本地文件系统一定要有读写权限。

只要满足上述两个条件,mysql用户才可以往nfs共享文件系统中读写数据的。

所以,基于上述要求和mysql初始化数据库时一定要使用mysql用户等方面的考虑。在HA高可用的每个节点都创建一样的用户:

                    用户:               mysql           UID:                388          属于那个组:                388

这样就保证了:两个节点的 mysqld 都可以使用同一份数据文件。

说明:

    把mysql 创建为系统用户,且登记shell 为: /sbin/nologin 这样,即使某人获得了mysql的密码也没法登陆我们的系统的。

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

<gum> : Bubble Gum Simulator Infinity- 로얄 키를 얻고 사용하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
Nordhold : Fusion System, 설명
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora : 마녀 트리의 속삭임 - Grappling Hook 잠금 해제 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
<exp exp> 모호한 : 원정 33- 완벽한 크로마 촉매를 얻는 방법
2 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

PHP를 사용하여 MariaDB 데이터베이스에 연결 PHP를 사용하여 MariaDB 데이터베이스에 연결 May 17, 2023 am 08:24 AM

MariaDB는 MySQL의 한 분야인 오픈 소스 관계형 데이터베이스 관리 시스템입니다. 오픈 소스 서버 측 스크립팅 언어인 PHP는 웹 개발에 널리 사용됩니다. 많은 웹 개발 프로젝트에서 웹 애플리케이션에 데이터를 저장하고 검색하려면 PHP를 사용하여 MariaDB 데이터베이스에 연결해야 합니다. 이 기사에서는 PHP를 사용하여 MariaDB 데이터베이스에 연결하는 코드를 작성하는 방법을 소개합니다. 1. MariaDB 서버를 설치하고 PHP를 사용하여 Maria에 연결합니다.

PDO를 사용하여 MariaDB 데이터베이스에 연결하는 방법 PDO를 사용하여 MariaDB 데이터베이스에 연결하는 방법 Jul 28, 2023 pm 02:49 PM

PDO를 사용하여 MariaDB 데이터베이스에 연결하는 방법 1. 소개 PDO(PHPDataObjects)는 데이터베이스에 액세스하기 위해 PHP에서 사용되는 경량 추상화 계층입니다. 이는 개발자에게 MariaDB, MySQL, SQLite 등을 포함한 다양한 유형의 데이터베이스를 연결하고 운영할 수 있는 통합 인터페이스 세트를 제공합니다. 이 기사에서는 PDO를 사용하여 MariaDB 데이터베이스에 연결하고 샘플 코드를 제공하는 방법을 소개합니다. 2. MariaDB에 연결하기 위해 PDO를 사용하여 설치 및 구성

MariaDB와 MySQL의 차이점을 자세히 설명하는 기사 MariaDB와 MySQL의 차이점을 자세히 설명하는 기사 Mar 09, 2023 am 11:39 AM

이 기사에서는 MariaDB와 MySQL에 대한 관련 지식을 주로 설명합니다. 관심 있는 친구들이 함께 살펴보는 것이 모든 사람에게 도움이 되기를 바랍니다.

Docker Compose, Nginx 및 MariaDB 모범 사례: 배포된 PHP 애플리케이션 모니터링 및 최적화 Docker Compose, Nginx 및 MariaDB 모범 사례: 배포된 PHP 애플리케이션 모니터링 및 최적화 Oct 12, 2023 pm 02:19 PM

DockerCompose, Nginx 및 MariaDB 모범 사례: 배포된 PHP 애플리케이션의 모니터링 및 최적화 소개: 최신 애플리케이션 개발에서 컨테이너화는 애플리케이션을 더 잘 관리하고 배포하는 데 도움이 되는 인기 있는 방법이 되었습니다. DockerCompose는 여러 컨테이너를 정의하고 실행하기 위한 도구로, 애플리케이션 배포 및 관리 프로세스를 단순화합니다. 이 기사에서는 DockerCompose를 사용하여 Nginx와 결합하는 방법을 소개합니다.

Debian 12에 MariaDB 데이터베이스를 설치하는 방법 Debian 12에 MariaDB 데이터베이스를 설치하는 방법 Feb 20, 2024 pm 02:24 PM

MariaDB는 오픈 소스 다중 스레드 관계형 데이터베이스 관리 시스템이며 MySQL을 대체합니다. MariaDB는 Debian에서 MySQL을 기본적으로 대체합니다. 이 튜토리얼에서는 Debian12에 MariaDB를 설치하는 방법을 설명합니다. 준비 조건 1. Debian12가 설치된 VPS 가상 머신(Alibaba Cloud VPS 또는 Tencent Cloud VPS 가상 호스트를 구입하는 것이 좋습니다. 외국 서버를 선호하는 경우 Vultr에서 VPS를 사용해 보는 것이 좋습니다. $50를 받습니다. 매우 비용 효율적입니다. 물론 자신의 컴퓨터나 가상 머신에서도 사용할 수 있습니다. 2. VPS를 사용하는 경우 보안상의 이유로 루트가 아닌 계정을 사용하는 것이 좋습니다. 이는 Debian12에서 가능합니다.

Docker Compose, Nginx 및 MariaDB를 사용하여 PHP 애플리케이션의 네트워크 성능 최적화 Docker Compose, Nginx 및 MariaDB를 사용하여 PHP 애플리케이션의 네트워크 성능 최적화 Oct 12, 2023 pm 12:49 PM

DockerCompose, Nginx 및 MariaDB를 사용하여 PHP 애플리케이션의 네트워크 성능 최적화 소개: 오늘날 인터넷 시대에 네트워크 성능은 웹 애플리케이션의 안정성과 응답성에 매우 중요합니다. PHP 애플리케이션의 네트워크 성능을 향상시키기 위해 컨테이너화 기술인 DockerCompose, 효율적인 웹 서버 Nginx 및 안정적인 데이터베이스 MariaDB를 사용할 수 있습니다. 이 기사에서는 이러한 도구를 사용하여 PHP 애플리케이션 네트워크를 최적화하는 방법을 자세히 설명합니다.

Docker Compose, Nginx 및 MariaDB의 완벽한 조합: PHP 애플리케이션 배포 모범 사례 Docker Compose, Nginx 및 MariaDB의 완벽한 조합: PHP 애플리케이션 배포 모범 사례 Oct 12, 2023 am 11:24 AM

DockerCompose, Nginx 및 MariaDB의 완벽한 조합: PHP 애플리케이션 배포 모범 사례 소개: 최신 웹 애플리케이션 개발에서는 컨테이너화 기술의 사용이 추세가 되었습니다. 컨테이너화 기술은 애플리케이션과 해당 종속성을 단일 컨테이너로 패키징할 수 있으므로 애플리케이션은 컨테이너화 기술을 지원하는 모든 환경에서 실행될 수 있습니다. Docker는 현재 애플리케이션의 배포, 관리 및 확장을 단순화할 수 있는 가장 널리 사용되는 컨테이너화 기술입니다. 사용하기위한

Docker Compose, Nginx 및 MariaDB를 사용하여 PHP 애플리케이션의 성능 문제 최적화 Docker Compose, Nginx 및 MariaDB를 사용하여 PHP 애플리케이션의 성능 문제 최적화 Oct 12, 2023 pm 12:55 PM

DockerCompose, Nginx 및 MariaDB를 사용하여 PHP 애플리케이션의 성능 문제 최적화 PHP 애플리케이션을 개발하고 배포할 때 성능 문제가 자주 발생합니다. 이러한 문제를 해결하기 위해 DockerCompose, Nginx 및 MariaDB를 활용하여 애플리케이션 성능을 최적화할 수 있습니다. DockerCompose는 여러 Docker 컨테이너를 정의하고 관리하기 위한 도구입니다. 여러 컨테이너를 쉽게 만들고 실행하는 데 도움이 됩니다.

See all articles