heartbeat v1 实现 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
架构如下图:
一、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 msB)、设置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的密码也没法登陆我们的系统的。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











MariaDB は、MySQL のブランチであるオープンソースのリレーショナル データベース管理システムです。 PHP は、オープンソースのサーバー側スクリプト言語として、Web 開発で広く使用されています。多くの Web 開発プロジェクトでは、Web アプリケーションにデータを保存および取得するために、PHP を使用して MariaDB データベースに接続する必要があります。この記事では、PHP を使用して MariaDB データベースに接続するコードを記述する方法を紹介します。 1. MariaDB サーバーをインストールし、PHP を使用して Maria に接続します。

PDO を使用して MariaDB データベースに接続する方法 1. はじめに PDO (PHPDataObjects) は、データベースにアクセスするために PHP で使用される軽量の抽象化レイヤーです。これは開発者に、MariaDB、MySQL、SQLite などのさまざまな種類のデータベースに接続して操作するための統合されたインターフェイスのセットを提供します。この記事では、PDO を使用して MariaDB データベースに接続する方法とサンプル コードを紹介します。 2. PDO を使用してインストールおよび構成し、MariaDB に接続します

この記事では、MariaDB と MySQL に関する関連知識を紹介します。主に MariaDB と MySQL の違いについて説明します。興味のある友達は一緒に見てください。皆さんのお役に立てれば幸いです。

DockerCompose、Nginx、MariaDB を使用した PHP アプリケーションのネットワーク パフォーマンスの最適化の概要: 今日のインターネット時代では、ネットワーク パフォーマンスは Web アプリケーションの安定性と応答性にとって非常に重要です。 PHP アプリケーションのネットワーク パフォーマンスを向上させるために、コンテナ化テクノロジ DockerCompose、効率的な Web サーバー Nginx、安定したデータベース MariaDB を使用できます。この記事では、これらのツールを使用して PHP アプリケーションのネットワークを最適化する方法を詳しく紹介します。

DockerCompose、Nginx、MariaDB を使用した PHP アプリケーションのパフォーマンス問題の最適化 PHP アプリケーションを開発およびデプロイするときに、パフォーマンスの問題が頻繁に発生します。これらの問題を解決するには、DockerCompose、Nginx、MariaDB を活用してアプリケーションのパフォーマンスを最適化します。 DockerCompose は、複数の Docker コンテナを定義および管理するためのツールです。複数のコンテナを簡単に作成して実行するのに役立ちます

MariaDB は、オープンソースのマルチスレッド リレーショナル データベース管理システムであり、MySQL に代わるものです。 MariaDB は、Debian における MySQL のデフォルトの代替品です。このチュートリアルでは、Debian12 に MariaDB をインストールする方法を説明します。準備条件 1. Debian12 がインストールされた VPS 仮想マシン (Alibaba Cloud VPS または Tencent Cloud VPS 仮想ホストを購入することをお勧めします。外部サーバーを好む場合は、Vultr で VPS を試すことをお勧めします。登録時に 50 ドルのトライアル体験が可能です)、非常に費用対効果が高くなります)、もちろん、自分のコンピューターまたは仮想マシンでも使用できます。 2. VPS を使用する場合は、セキュリティ上の理由から、非 root アカウントを使用することをお勧めします。これは Debian12 で実行できます。

DockerCompose、Nginx、MariaDB を使用した PHP アプリケーションのセキュリティ強化 ネットワーク攻撃やデータ漏洩が頻繁に発生する中、アプリケーションやデータベースのセキュリティを保護することがますます重要になっています。 PHP アプリケーションでは、DockerCompose、Nginx、MariaDB を使用することでセキュリティを強化し、特定のセキュリティ保護手段を提供できます。この記事では、セキュリティを強化するためにこれらのツールを使用する方法を説明し、いくつかのコード例を示します。ドキュメントの使用

DockerCompose、Nginx、MariaDB の完璧な組み合わせ: PHP アプリケーションをデプロイするためのベスト プラクティス はじめに: 最新の Web アプリケーション開発では、コンテナ化テクノロジの使用がトレンドになっています。コンテナ化テクノロジでは、アプリケーションとその依存関係を 1 つのコンテナにパッケージ化できるため、コンテナ化テクノロジをサポートするあらゆる環境でアプリケーションを実行できます。 Docker は現在最も人気のあるコンテナ化テクノロジーであり、アプリケーションの展開、管理、拡張を簡素化できます。使用する場合
