MySQL マルチインスタンス構成のアプリケーションシナリオ

MySQL マルチインスタンス構成のアプリケーションシナリオ

MySQL 複数インスタンス

マルチインスタンスの概要

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

1 台のサーバー上で、複数のデータベース サービスが実行されます。これらのサービス プロセスは、異なるソケットを介して異なるサービス ポートをリッスンすることで、独自のサービスを提供します。

複数のインスタンスを構成する理由は何ですか?

  • 運用・保守コストを節約
  • ハードウェアの使用率を向上させる

複数インスタンスの適用シナリオ

  • 資金が厳しい企業;
  • 同時アクセスは特に大きなビジネスではありません。

複数のインスタンスを構成する

1. ソフトウェアをインストールする

具体的な操作:

ソフトウェアを解凍し、ディレクトリ名を変更し、PATHパスを変更します

既存のデータベース サービスがあるマシンで複数のインスタンスを実行している場合は、まずデータベース サービスのバージョンが複数のインスタンスをサポートしているかどうかを確認します。サポートしていない場合は、サービスを停止し、複数のインスタンスをサポートするデータベース バージョンをインストールする必要があります。

次に、マルチインスタンスサービスを提供するソフトウェアをインストールします

以下に示すバージョンは、バイナリを使用してインストールされる MySQL 5.7.36 です。その他のインストール方法については、「MySQL のインストール方法」を参照してください。

グループ追加 -r -g 306 mysql 
ユーザー追加 -g 306 -r -u 306 mysql
tar -zxvf mysql-5.7.36-linux-glibc2.12-x86-64.tar.gz 
ルートディレクトリ /root/mysql-5.7.36-linux-glibc2.12-x86_64 /usr/local/mysql

2. 設定ファイル

メイン設定ファイル /etc/my.cnf

  • 各インスタンスは独立している必要があります: データベースディレクトリ、ポート
  • ソケットファイル、pidファイル、エラーログファイル
vim /etc/my.cnf
[mysqld_multi] #複数のインスタンスを起動しますmysqld = /usr/local/mysql/bin/mysqld_safe #プロセスファイルのパスを指定しますmysqladmin = /usr/local/mysql/bin/mysqladmin #管理コマンドのパスを指定しますuser = root #プロセスユーザーを指定します#pass = MySQL@123 #パスワードを指定する必要はありません。初期化時に表示されます[mysqld3306] #インスタンスのプロセス名、3306はサービス番号ですsocket = /tmp/mysql.sock1 #sockファイルのパスと名前を指定しますport = 3306 #ポートを指定しますpid-file = /data/3306/mysqld.pid #プロセスファイルのpid番号ファイルを場所別に指定しますdatadir = /data/3306 #データベースディレクトリ、事前に作成しておくことをお勧めしますlog-error = /data/3306/mysqld.log #エラーログの場所[mysqld3307]
ソケット = /tmp/mysql.sock2
ポート = 3307
pid ファイル = /data/3307/mysqld.pid
データディレクトリ = /data/3307
ログエラー = /data/3307/mysqld.log

mkdir -p /data/330{6..7}
chown -R mysql:mysql /data/330{6,7}

ソケットファイル: 独自のデータベースサービスにアクセスするときは、ソケットファイルを介してパラメータを渡します。

3. サービスを開始する

複数のインスタンスの管理

  • サービスを開始する

mysqld_multi インスタンス番号の開始#サービスを開始する

  • サービスを停止

mysqld_multi --user=root --password=passwordstop インスタンス番号

/usr/local/mysql/bin/mysqld_multi start 3306 #まず初期化を開始します #このコマンドを使用して /usr/local/mysql/bin/mysqld を初期化することもできます --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/3307
#このコマンドで初期化した後、サービス /usr/local/mysql/bin/mysqld_multi start 3307 を開始する必要があります。
絶対パスを入力するのは面倒なので、環境変数vim /etc/に書き込むこともできます。
エクスポート PATH=$PATH:/usr/local/mysql/bin/

ソース /etc/profile.d/mysql.sh
#次に、短いコマンドmysqld_multi start 3307を記述します。 

ここに画像の説明を挿入

4. サービスステータスを確認する

ss -nultp | grep 3306
ss -nultp | grep 3307 

ここに画像の説明を挿入

5. 初期パスワードを使用してサービスに接続します

クライアントアクセス

ローカル接続

初期パスワードを使用して接続する

ローカルログインパスワードを変更する

#mysql -uroot -p'初期パスワード' -S sock ファイル#mysql>alter user root@"localhost" identified by "新しいパスワード";
#最初のデータベースインスタンスに接続します。テスト /usr/local/mysql/bin/mysql -uroot -p'' -S /tmp/mysql.sock1
データベースを表示します。
「123456」で識別されるユーザー root@"localhost" を変更します。
データベースを表示します。
出口
# 2 番目のデータベース インスタンスに接続して mysql をテストします -uroot -p'' -S /tmp/mysql.sock2
データベースを表示します。
「123456」で識別されるユーザー root@"localhost" を変更します。
データベースを表示します。
出口

ここに画像の説明を挿入
ここに画像の説明を挿入

新しいパスワードで再度ログインしてください

ここに画像の説明を挿入

6. 複数のインスタンスを停止する

mysqld_multi --user=root --password=123456 停止 3306
#mysqld_multi --user=root --password=123456 stop インスタンス番号を書き込まない場合は、データベースユーザー root とパスワード 123456 のインスタンスが停止されます ss -nultp | grep 3306 

ここに画像の説明を挿入

これで、MySQL マルチインスタンスの構成と適用シナリオに関するこの記事は終了です。MySQL マルチインスタンスに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQL マルチインスタンス インストール ブート自動起動サービス設定プロセス
  • Linux での MySQL マルチインスタンスの展開とインストール ガイド
  • MySQL シリーズ II マルチインスタンス構成
  • MySQLデータベース入門:マルチインスタンス構成方法の詳しい説明
  • MySQL マルチインスタンス構成ソリューション

<<:  Vue におけるキープアライブ マルチレベル ルーティング キャッシュの問題

>>:  HTML でシンプルな ListViews 効果を実装するためのサンプル コード

推薦する

JavaScript フォーム検証の例

HTML フォームは、名前、電子メール アドレス、場所、年齢などのユーザー情報を収集するためによく使...

DockerがMySQL構成実装プロセスを開始

目次実際の戦闘プロセスまずは主なコマンドと詳細を一つずつ説明しましょう起動が成功したかどうかを確認す...

実際のプロジェクトでElementUIを使用する手順の詳細な説明

目次1. テーブル自動ソート2. ページング機能3.el-checkbox-group 複数選択ボッ...

Vueプロジェクトのパッケージングと展開の実際のプロセスの記録

目次序文1. 準備 - サーバーとnginxの使用1. サーバーを準備する2. nginxをインスト...

近々ブラウザに導入される CSS :is() と :where() の簡単な分析

Safari (Technology Preview 106) および Firefox (バージョン...

MySQL 5.7 でブロックポジショニング DDL の問題を解決する

前回の記事「MySQL テーブル構造の変更、メタデータ ロックを知っておく必要があります」では、MD...

Angularコンポーネントの仲介モードの詳細な説明

目次1. 仲介業者モデル2. 例1. 見積コンポーネントに購入ボタンを追加する2. 親コンポーネント...

Docker 環境で JMeter+Grafana+influxdb ビジュアル パフォーマンス監視プラットフォームを構築するチュートリアル

目次1. Dockerをインストールする2. influxDBをインストールして設定する3. Gra...

Vueはアコーディオン効果を実装する

この記事の例では、アコーディオン効果を実現するためのVueの具体的なコードを参考までに共有しています...

MySQLのunion allとunionの違いを簡単に理解する

Union は、重複行を除外し、デフォルトのソートを実行する、データに対する結合操作です。Union...

Vue echarts は水平棒グラフを実現します

この記事では、水平棒グラフを実現するためのvue echartsの具体的なコードを参考までに共有しま...

CSS3で実装された3Dトンネル効果

達成された効果実装コードhtml <div class="scene"&g...

テーブルを使用してフォームコントロールの形式を調整し、見栄えを良くします。

自分でウェブページを書きたいので、HTML 言語についても少し勉強しています。これは、大学時代にウェ...

デザイン理論:計画、リソース、コミュニケーションの問題について

<br />多くの中小企業ではこの問題は発生しません。中小企業はデザイナーをサポートし、...

よくある Linux 英語エラーの中国語翻訳 (初心者必見)

1.コマンドが見つかりません コマンドが見つかりません2. そのようなファイルまたはディレクトリは...