MySQL マルチインスタンス構成ソリューション

MySQL マルチインスタンス構成ソリューション

1.1 MySQL マルチインスタンスとは何ですか?

簡単に言うと、MySQL マルチインスタンスとは、サーバー上で複数の異なるサービス ポート (3306/3307/3308 など) を同時に開き、複数の MySQL サーバーを同時に実行することです。これらのサービス プロセスは、異なるソケットを介して異なるサービス ポートをリッスンしてサービスを提供します。

これらの Mysql インスタンスは、一連の Mysql インストール プログラムを共有し、異なる my.cnf 構成ファイル、起動プログラム、およびデータ ファイルを使用します。サービスを提供する際、複数の Mysql インスタンスは論理的に互いに独立しています。構成ファイル内の対応する設定に従って、サーバーの対応するリソースを取得します。

1.2 マルチインスタンス構成のアイデア:

1. 複数の独立したディレクトリ
2. 各インスタンスは独立したデータ(初期化データ)を持つ
3. 複数のポート
4. 複数のソケット
5. 複数のスタートアッププログラム
6. 複数のログファイル

1.3 マルチインスタンス構成プロセス:

1.3.1 別のディレクトリを作成します。

mkdir -p /data/{3307,3308}
chown –R mysql.mysql /データ

1.3.2 各インスタンスの設定ファイルを記述します。

[root@db01 ~]# cat /data/3307/my.cnf
[mysqld]
ベースディレクトリ=/application/mysql
データディレクトリ=/data/3307
ソケット=/data/3307/mysql.sock
ログエラー=/data/3307/mysql.log
log_bin=/data/3307/mysql-bin
binlog_format=行
スキップ名解決=1
サーバーID=3307
ポート=3307

1.3.3 初期化データ:

./mysql_install_db --defaults-file=/data/3307/my.cnf --basedir=/application/mysql --datadir=/data/3307 --user=mysql

1.3.4 インスタンスを起動します。

sh mysqld_safe --defaults-file=/data/3307/my.cnf --pid-file=/data/3307/3307.pid &

マルチインスタンス サービスを管理するためのシェル スクリプト:

#!/bin/bash
 
. /etc/init.d/functions
./etc/プロファイル
 
開始='/application/mysql/bin/mysqld_safe --defaults-file=/data/3307/my.cnf --pid-file=/data/3307/3307.pid'
停止='mysqladmin -uroot -S /data/3307/mysql.sock シャットダウン'
ポート=`ss -tunlp|grep 3307|wc -l`
 
関数START(){
 [ $Port -ne 1 ]の場合
  $開始 >/dev/null 2>&1 &
  睡眠3
  [ $? -eq 0 ]の場合;
   アクション 'MySQL 3307 開始' /bin/true
  フィ
 それ以外
  アクション 'MySQL 3307 はすでに存在します' /bin/true
 フィ
}
関数STOP(){
 [ $Port -ne 0 ]の場合
  $停止
  [ $? -eq 0 ]の場合;
   アクション 'MySQL が正常に停止しました' /bin/true
  フィ
 それ以外
  アクション 'MySQL はすでに停止しています' /bin/true
 フィ
}
関数RESTART(){
 停止
 睡眠1
 始める
}
ケース$1
始める)
 始める
 ;;
停止)
 停止
 ;;
再起動)
 再起動
 ;;
*)
 echo "使用法: $0 {start|stop|restart}"
 ;;
エサック

以下もご興味があるかもしれません:
  • MySQLマルチインスタンスインストールに基づく詳細な分析
  • MySQLデータベース入門:マルチインスタンス構成方法の詳しい説明
  • mysqld_multi を使用して単一のマシンに複数のインスタンスをデプロイする方法に関する MySQL チュートリアル
  • MySQL マルチインスタンス インストール ブート自動起動サービス設定プロセス

<<:  Element UI を使用してページにページング ナビゲーション バーを追加する方法

>>:  UbuntuにProtobuf 3をインストールするための詳細なチュートリアル

推薦する

ソースコード分析からTomcatがサーブレットの初期化を呼び出す方法の詳細な説明

目次導入1. Tomcatを起動するコード2. Tomcatフレームワーク3. コンテナを作成する ...

Vueは動的コンポーネントを使用してTAB切り替え効果を実現します

目次問題の説明Vueの動的コンポーネントとはアプリケーションシナリオの説明実装手順ステップ 1 (新...

MySQL Server 8.0.13.0 インストールチュートリアル(画像とテキスト付き)

MySQL 6.1.3 をベースにした 8.0.13 をインストールします。 MySQL 8.0....

VMware インストール エラー VMware Workstation が VMware 認証サービスを開始できませんでした

背景: SAP ECC サーバーをインストールし、XP をプレインストールしたいと考えています。XP...

Docker Compose で環境変数を参照する方法の例

プロジェクトでは、さまざまな条件や使用シナリオを制御するために、docker-compose.yml...

ウェブサイトのアクセス速度を向上させるための徹底的な最適化に関するヒント

<br />ウェブサイトのアクセス速度はウェブサイトのトラフィックに直接影響を及ぼし、ウ...

ファイルのアップロードの進行状況を示す React の例

目次React アップロードファイル表示の進行状況デモフロントエンドにReactアプリケーションを素...

HTMLタグと基本要素の学習のまとめ

1. HTML の要素とタグ<br />要素は、1 つのタグまたは 1 組のタグによって...

MySQL 8.0.18 のインストールと設定方法のグラフィックチュートリアル

この記事は、参考のためにMySQL 8.0.18のインストールと設定のグラフィックチュートリアルを記...

Linux での mysql-5.7.28 インストール チュートリアル

1. 公式ウェブサイトから Linux バージョンをダウンロードします: https://dev.m...

ウェブページの読み込み進捗状況バーの詳細な説明(推奨)

(Web ページの読み込み中に、コンテンツが多すぎて読み込みと待機が続くことがあります。このとき、...

実用的なウェブオンラインツール12選

1.ファビコン.cc ico アイコンの Web サイトをオンラインで作成するには、画像をアップロー...

jsは水平および垂直スライダーを実現します

最近、練習プロジェクトをしていたときにスライダーを使う必要があったので、調べてみました。まず、水平ス...

アイデアがWebプロジェクトを公開した後、Tomcatサーバーがプロジェクトとそのソリューションを見つけることができません

概要プロジェクトは正常に作成され、正常にデプロイされましたが、以下に示すように、Tomcat サーバ...

CentOS7でXShellとネットワーク設定を接続する方法

1. Linuxネットワーク構成ネットワークを構成する前に、まずローカル IPv4 アドレスやデフォ...