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

推薦する

Vueコンポーネントが相互に値を転送する方法の詳細な説明

目次概要1. 親コンポーネントが子コンポーネントに値を渡す2. 子コンポーネントが親コンポーネントに...

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

この文書はMySQL Server 8.0.3のインストールと設定方法を参考のために記録したものです...

Linux whatisコマンドの使い方

01. コマンドの概要whatis コマンドは、システム コマンドの簡単な説明を含むいくつかの特別な...

MySQLでSQL文がどのように実行されるかの詳細な説明

概要最近MySQL関連の知識を勉強し始めました。学んだ知識ポイントと自分の理解を元に整理して共有しま...

W3C チュートリアル (15): W3C SMIL アクティビティ

SMIL は、Web にタイミングとメディアの同期のサポートを追加します。 SMIL は、Web に...

MySQL インデックス プッシュダウンを 5 分で理解する

目次インデックス プッシュダウンとは何ですか?インデックスプッシュダウン最適化の原理インデックスプッ...

nginxリバースプロキシwebSocket設定の詳細な説明

最近、プロジェクトで作業しているときに webSocket プロトコルを使用し、WeChat アプレ...

メタを使用してトラフィックキャッシュをキャンセルし、ページにアクセスするたびにページを更新して簡単にデバッグできるようにします。

コードをコピーコードは次のとおりです。 <!-- ブラウザがローカル キャッシュからページにア...

デザイン理論:人間中心のグリーンデザイン

「人間中心」と「グリーンデザイン」という2つの視点から考える——デザイン業界の同僚とも議論する2つの...

Dockerサーバーのストレージリソースプール不足問題の解決

目次1. 問題の説明2. 問題分析3. 問題解決1. Dockerのディスク使用量を確認する2. 再...

Dockerfile echoは、指定されたファイル内の複数行のテキストを実装する方法を指定します。

Dockerfile内の指定されたファイルに複数の行を追加します。echoの後の「$」記号に注意し...

Ubuntu 18でターミナルを美しいコマンドラインプロンプトに変更する方法

VMware と Ubuntu を再インストールしましたが、コマンドラインプロンプトが単調すぎて美し...

HTMLは入力完了を検出する機能を実装する

入力が進行中かどうかを検出するには、「onInput(event)」を使用しますコンテンツが変更され...

YUM を使用して Linux (CentOS 7) に MySQL 5.7.18 をインストールする方法の詳細なチュートリアル

このプロジェクトでは MySQL を使用する必要があります。これまで Windows では常に確実に...