MySQL マルチインスタンス構成ソリューション

MySQL マルチインスタンス構成ソリューション

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

簡単に言うと、MySQL マルチインスタンスとは、サーバー上で複数の異なるサービス ポート (3306/3307/3308 など) を同時に開き、複数の MySQL サーバーを同時に実行することです。これらのサービス プロセスは、異なるソケットを介して異なるサービス ポートをリッスンしてサービスを提供します。

これらの Mysql インスタンスは、一連の Mysql インストール プログラムを共有し、異なる my.cnf 構成ファイル、起動プログラム、およびデータ ファイルを使用します。サービスを提供する際、複数の Mysql インスタンスは論理的に互いに独立しています。構成ファイル内の対応する設定に従って、サーバーの対応するリソースを取得します。

1.2 マルチインスタンス構成のアイデア:

1. 複数の独立したディレクトリ
2. 各インスタンスは独立したデータ(初期化データ)を持つ
3. 複数のポート
4. 複数のソケット
5. 複数のスタートアッププログラム
6. 複数のログファイル

1.3 マルチインスタンス構成プロセス:

1.3.1 別のディレクトリを作成します。

mkdir -p /data/{3307,3308}
chown –R mysql.mysql /データ

1.3.2 各インスタンスの設定ファイルを記述します。

[root@db01 ~]# cat /data/3307/my.cnf
[mysqld]
ベースディレクトリ=/application/mysql
データディレクトリ=/data/3307
ソケット=/data/3307/mysql.sock
ログエラー=/data/3307/mysql.log
log_bin=/data/3307/mysql-bin
binlog_format=行
スキップ名解決=1
サーバーID=3307
ポート=3307

1.3.3 初期化データ:

./mysql_install_db --defaults-file=/data/3307/my.cnf --basedir=/application/mysql --datadir=/data/3307 --user=mysql

1.3.4 インスタンスを起動します。

sh mysqld_safe --defaults-file=/data/3307/my.cnf --pid-file=/data/3307/3307.pid &

マルチインスタンス サービスを管理するためのシェル スクリプト:

#!/bin/bash
 
. /etc/init.d/functions
./etc/プロファイル
 
開始='/application/mysql/bin/mysqld_safe --defaults-file=/data/3307/my.cnf --pid-file=/data/3307/3307.pid'
停止='mysqladmin -uroot -S /data/3307/mysql.sock シャットダウン'
ポート=`ss -tunlp|grep 3307|wc -l`
 
関数START(){
 [ $Port -ne 1 ]の場合
  $開始 >/dev/null 2>&1 &
  睡眠3
  [ $? -eq 0 ]の場合;
   アクション 'MySQL 3307 開始' /bin/true
  フィ
 それ以外
  アクション 'MySQL 3307 はすでに存在します' /bin/true
 フィ
}
関数STOP(){
 [ $Port -ne 0 ]の場合
  $停止
  [ $? -eq 0 ]の場合;
   アクション 'MySQL が正常に停止しました' /bin/true
  フィ
 それ以外
  アクション 'MySQL はすでに停止しています' /bin/true
 フィ
}
関数RESTART(){
 停止
 睡眠1
 始める
}
ケース$1
始める)
 始める
 ;;
停止)
 停止
 ;;
再起動)
 再起動
 ;;
*)
 echo "使用法: $0 {start|stop|restart}"
 ;;
エサック

以下もご興味があるかもしれません:
  • MySQLマルチインスタンスインストールに基づく詳細な分析
  • MySQLデータベース入門:マルチインスタンス構成方法の詳しい説明
  • mysqld_multi を使用して単一のマシンに複数のインスタンスをデプロイする方法に関する MySQL チュートリアル
  • MySQL マルチインスタンス インストール ブート自動起動サービス設定プロセス

<<:  Element UI を使用してページにページング ナビゲーション バーを追加する方法

>>:  UbuntuにProtobuf 3をインストールするための詳細なチュートリアル

推薦する

HTML の一般的でないタグ optgroup、sub、sup、bdo のサンプルコード

Optgroup は、ドロップダウン リストのコンテンツをより整理するために、select タグで使...

MySQL テーブルがロックされているかどうかを照会する方法

具体的な方法: (推奨チュートリアル:MySQLデータベース学習チュートリアル)テーブルロックの状態...

フロントエンドページのスライド検証を実装するための JavaScript + HTML

この記事では、フロントエンドページのスライド検証を実装するためのJavaScript + HTMLの...

Fabric.js は DIY ポストカード機能を実装します

この記事では、DIYポストカード機能を実現するためのfabricjsの具体的なコードを参考までに共有...

Xftp のダウンロードとインストールのチュートリアル (グラフィック チュートリアル)

Windows と Linux 間でファイルを転送する場合は、Xftp ツールを使用できます。この...

Dockerの一般的なコマンドとヒントのまとめ

インストールスクリプトUbuntu / CentOS Debian のインストールに問題があるようで...

MySQL 学習ノート: データ エンジン

現在のデータベースでサポートされているエンジンを表示します エンジンを表示 +-----------...

HTML CSS を使用して div またはテーブルを指定した位置に固定する方法

CSSコードコンテンツをクリップボードにコピー.bottomTable{背景色: rgb (249,...

Maven プロジェクトのリモート デプロイメント && Tomcat を使用してデータベース接続を構成する方法

1つ。 tomcat を使用したリモート展開1.1 発生した問題:プロジェクトでは、サードパーティの...

MySQLデータのグループ化の詳細な説明

グループを作成グループ化は、SELECT ステートメントの GROUP BY 句で設定されます。例:...

MySQL よく使われる関数の詳細な概要

目次MySQL 共通関数1. 数値関数文字列関数3. 時間機能4. システム機能5. 集計関数MyS...

クリックナンバーゲームを実装するネイティブJS

参考までに、クリックナンバーゲームをネイティブJSで実装しました。具体的な内容は以下のとおりです。最...

JSはクリックドロップ効果を実装します

jsはクリックとドロップの特殊効果を実現します。まずは効果画像を見てみましょうさっそく始めましょう。...

自動ロック画面機能を実現するjs

1. 使用シナリオこのような要件があるため、システムが開発されました。ユーザーがデスクトップを離れ...

Vue2.x および Vue3.x のカスタム命令の使用方法とフック関数の原理を理解する

目次Vue2.x の使用法グローバル登録部分登録使用フック機能フック関数のパラメータVue3.x の...