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

推薦する

モバイルでのHTML5経由のファイルアップロード

ほとんどの場合、PC でファイルをアップロードするにはプラグインが使用され、フラッシュが導入されても...

DockerにJava環境をインストールするための実装手順

この記事は Linux centos8 をベースにして、docker をインストールし、イメージをプ...

Linux ターミナルでドメイン IP アドレスを見つけるコマンド (5 つの方法)

このチュートリアルでは、Linux ターミナルでドメイン名またはコンピューター名の IP アドレスを...

vue + Electron でデスクトップ アプリケーションを作成するためのサンプル コード

1.vueパッケージングここでは、vueネイティブパッケージングコマンドを使用してvueプロジェクト...

CentOS 7 でソースコードから Openssh をインストールする方法

環境: CentOS 7.1.1503 最小インストール依存パッケージをダウンロードします: yum...

スライダー間隔コンポーネントのネイティブ js 実装

この記事の例では、スライダー間隔コンポーネントを実装するためのjsの具体的なコードを参考までに共有し...

Hyper-V の紹介とインストールと使用 (詳細な図解)

はじめに:IT 業界の巨人である Microsoft 独自の仮想化技術は、VMware や Citr...

CSS -webkit-box-orient: コンパイル後に垂直プロパティが失われる

1. 原因要件は 2 行を表示することであり、余分なテキストは 3 つのドットに置き換えられるため、...

Vue+SpringBoot+Shiroのクロスドメイン問題を解決する

目次1. Vueフロントエンドを構成する1. クロスドメイン構成を開発する2. 本番環境のクロスドメ...

Vueはv-modelを使用してel-paginationコンポーネントのプロセス全体をカプセル化します。

v-model を使用してページング情報オブジェクトをバインドします。ページング情報オブジェクトに...

MySql 組み込み関数の自習知識ポイントまとめ

文字列関数文字ascii(str)のASCIIコード値をチェックし、strが空の文字列の場合は0を返...

Centos7 に PHP と Nginx をインストールする詳細なチュートリアル

Centos のサーバー側への適用がますます普及するにつれて、Centos7 もますます使用されるよ...

MySQL 5.7.20 解凍版のインストールとルートパスワードの変更に関するチュートリアル

1. MySQL アーカイブ (解凍版) をダウンロードするURL: https://downloa...

Vue+Vantはトップ検索バーを実装します

この記事では、参考までに、Vue+Vant のトップ検索バーを実装するための具体的なコードを紹介しま...

Linux での MySQL 5.1 および 5.7 のインストール チュートリアル

以下のコンテンツのオペレーティング システムは次のとおりです: Centos 6.7 yum で M...