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 効果を実装するためのサンプル コード

推薦する

CocosCreatorでJSZip圧縮を使用する方法

CocosCreator バージョン: 2.4.2 jszipの実践的なプロジェクトアプリケーション...

MySQL のキーとインデックスの違い

まずはコードを見てみましょう: ALTER TABLE reportblockdetail ADD ...

ウェブデザインのグラフィック構成と組版機能の紹介

すべてには基礎が必要です。家を建てるには基礎が必要です。方程式を解くには、まず九九を覚える必要があり...

CSSアニメーションとSVGを組み合わせてエネルギーの流れの効果を作成する

最終的な効果は次のようになります。アニメーションは2つのステップに分かれていますランニング軌道を開発...

Portainer を使用して複数の Docker コンテナ環境を管理する方法を説明します。

目次Portainerは複数のDockerコンテナ環境を管理します2. Dockerを管理する2.1...

Vueブラウザが監視を再開するための具体的な手順

序文ページを共有するときに、ブラウザの戻るボタンをクリックしてプロジェクトのホームページに戻り、訪問...

Dockerカスタムネットワークの詳細な紹介

目次Dockerカスタムネットワーク1. カスタムネットワークの紹介2. カスタムネットワークを作成...

ボタンのタイプが送信として指定されていません。ボタンをクリックしても、指定された URL にジャンプしません。

現在、プロジェクトの要件により、フォームの送信を制御し、送信前にデータを検証および処理するために j...

Ubuntu 20.04の新バージョンでルートユーザーを使用してシステムにログインする方法の詳細なチュートリアル

Ubuntu 20.04 では、デフォルトで root ログインが有効になっていないため、デスクトッ...

jQueryは画像の強調表示を実現します

ページ上の画像を強調表示することは非常に一般的です。ここでは、jQuery を使用して画像を強調表示...

Vue は小数点付きの星評価を実装します

この記事では、小数点付きの星評価を実装するためのVueの具体的なコードを参考までに共有します。具体的...

MySQLコマンドが中国語で入力できない問題の解決方法

問題を見つける最近、MySQL コマンドを使用して MySQL サーバーに接続したときに、以下のよう...

Centos7のシステム言語を簡体字中国語に変更する方法

例示するシステムを自分でインストールする場合は、通常、システム言語をカスタマイズできます。ただし、ク...

Windows 10 1903 エラー 0xc0000135 の解決方法 [推奨]

Windows 10 1903 は、2019 年に Microsoft がリリースした Windo...

CentOS6.5 でファイル共有サービス Samba を構築するチュートリアル

Samba サービス:このコンテンツはサンバサービス学習者の参考用ですケースの説明:企業の管理者は、...