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をインストールするための詳細なチュートリアル

推薦する

ウォーターフォールフローレイアウト(無限読み込み)を実現する js

この記事の例では、ウォーターフォールフローレイアウトを実装するためのjsの具体的なコードを参考までに...

ROS2のインストールとdocker環境の使い方について

目次Docker を使用する理由は何ですか? DockerのインストールROSイメージを取得するRO...

MySQL サーバー 5.5 の接続失敗の解決策

mysqlに接続できない問題の解決方法を参考までに紹介します。具体的な内容は以下のとおりです。昨日は...

TypeScript 2.0 マーク付き共用体型の詳細な説明

目次タグ付きユニオン型を使用した支払い方法の構築タグ付きユニオン型を使用した Redux アクション...

Mysqlは日付範囲の抽出方法を指定します

データベースを操作する過程では、いくつかの指標を日付別にまとめたり、一定期間内の合計金額をカウントし...

ショートビデオ(Douyin)の透かし除去ツールの実装コード

目次1. まず最初のリンクを取得する2. ブラウザでこのリンクを開いてください3. アドレスを開くと...

JavaScriptの基本的なインタラクションの詳細な説明

目次1. 要素の入手方法文書から入手ID取得クラス名 (className) を取得します。タグ名 ...

同じ IP のアクセス頻度を制限するように nginx を設定する方法

1. nginx.conf の http{} に次のコードを追加します。 limit_conn_zo...

Linux でのソース パッケージ インストールのサービス管理

目次1. ソースパッケージサービスの起動管理2. ソースパッケージサービスのセルフスタート管理3. ...

LeetCode の SQL 実装 (184. 部門内で最も高い給与)

[LeetCode] 184. 部門最高給与従業員テーブルにはすべての従業員が保存されます。すべて...

Vueでaxiosをカプセル化するいくつかの方法

目次ベーシックエディションステップ1: Axiosを構成するステップ2: リクエストをカプセル化する...

MySQL 接続制御プラグインの紹介

目次1. 接続制御プラグイン(connection_control)の紹介1.1 connectio...

時系列転位修復ケースを実装するSQL

目次1. 要件の説明2. アイデアの概要1. 延長を要求する2. アイデアの概要3. SQLコード1...

Tomcat を使用して Centos 環境に SpringBoot WAR パッケージをデプロイする

戦争パッケージを準備する1. 既存のSpringBootプロジェクトを準備し、pomに依存関係を追加...

Vueベースのカスタムコンポーネントを実装してアイコンを導入する

序文プロジェクト開発では、アイコンを使用する方法はたくさんあります。iconfont で適切なアイコ...