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

推薦する

Linux で指定されたフォルダの各サブフォルダ内のファイル数を表示する

カウントスクリプト #!/bin/sh 引数の数=$# [ $numOfArgs -ne 1 ]の場...

QQtabBar による CSS 命名仕様 BEM の詳細な紹介

QQtabBar の BEMまず、BEMとはどういう意味でしょうか? BEM は、ブロック、要素、修...

MySQL でよく使われる連結文のまとめ

はじめに: MySQL では、CONCAT() 関数を使用して複数の文字列を 1 つの文字列に連結し...

Vueはvueメタ情報を使用して各ページのタイトルとメタ情報を設定します。

title: vue は vue-meta-info を使用して各ページのタイトルとメタ情報を設定...

ウェブ画像形式としてPNG、JPG、GIFを選択して使用する方法

では、GIF、PNG、JPG のどの形式を候補形式として選択すればよいのでしょうか。また、どの画像形...

jQueryはシンプルなポップアップウィンドウ効果を実装します

この記事では、簡単なポップアップウィンドウ効果を実現するためのjQueryの具体的なコードを参考まで...

Linux でのインストール中にソフトウェア パッケージの依存関係レポートに関連する問題の解決策

目次背景1) yumのkeepchche機能を有効にする: 方法1 2) yum-utils ソフト...

Linux CentOS 6.5 のアンインストール、tar、および MySQL のインストールチュートリアル

システム提供のMySQLをアンインストールする1. MySQLがシステムにインストールされているかど...

JSONデータをHTMLで表示する方法

背景:場合によっては、json データをページに直接表示する必要があります (たとえば、インターフェ...

MySQL クエリにおける LIMIT の大きなオフセットによって引き起こされるパフォーマンス低下の分析

序文MySQLクエリはselectコマンドを使用し、limitとoffsetパラメータを使用して、指...

Linux での nginx のインストール、展開、使用方法の詳細な説明

目次1. ダウンロード2. 展開3. Nginxログ関連の設定4. ファイルダウンローダーとして n...

より人気がありクリエイティブなダーク背景のウェブデザインの例

暗い背景スタイルのページ デザインは非常に人気があり、シックでエレガント、そして非常にクリエイティブ...

CSS でリスト スタイル属性を設定する方法 (この記事を読むだけ)

リストスタイルのプロパティHTMLには、順序なしリストと順序ありリストの2種類のリストがあります。仕...

HTML でよく使用されるエスケープ文字の概要

HTML でよく使用されるエスケープ文字をまとめると次のようになります。 &nbsp; 改行...

mysqlは内部コマンドエラーの解決策ではありません

「mysqlは内部コマンドではありません」というエラーは、mysqlのbinディレクトリパスが環境変...