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

推薦する

ドロップダウンリストのJavaScript実装

この記事の例では、ドロップダウンリストを実装するためのJavaScriptの具体的なコードを参考まで...

Tomcatが親の委任メカニズムを破壊する方法についての簡単な説明

目次JVM クラスローダーTomcat クラスローダークラスを検索ロードクラスクラスをロードしようと...

MySQLの共有ロックと排他ロックの使用例の分析

この記事では、例を使用して MySQL の共有ロックと排他ロックの使用方法を説明します。ご参考までに...

Nginx シグナル制御

Nginx の紹介Nginx は、高性能な HTTP およびリバース プロキシ サーバーであり、IM...

React antd タブの切り替えによりサブコンポーネントが繰り返し更新される

説明する: Tabs コンポーネントが切り替わると、TabPane に含まれる同じサブコンポーネント...

IDEA は Docker プラグインを使用します (初心者向けチュートリアル)

目次例示する1. Dockerリモートアクセスを有効にする2. Dockerに接続する3. イメージ...

JavaScriptタイマーとボタン効果設定の詳細な説明

タイマー効果: <div> <font id='timeCount'...

OR キーワードを使用した MySql 複数条件クエリ ステートメント

前の記事では、And キーワードを使用した MySql の複数条件クエリ ステートメントを紹介しまし...

略語マークと頭字語マーク

<abbr>タグと<acronym>タグは、Web ページに表示される略語と...

JDBC を使用して Mysql データベースに接続する際に発生する可能性のある問題の概要

まず、いくつかの概念を明確にします。 JDBC: Javaデータベース接続、Oricalによって規定...

1つの記事でJavaScript DOM操作の基本を学ぶ

DOM の概念DOM: ドキュメント オブジェクト モデル: ドキュメント オブジェクト モデルは、...

Javascriptの基本ループの詳しい説明

目次サイクルのために入室のためのその間しながら行うループから抜け出す要約するサイクルのためにループは...

Navicat を使用して csv ファイルを MySQL にインポートする

この記事では、参考までに、Navicatを使用してCSVファイルをMySQLにインポートするための具...

HTML の値属性と名前属性の機能と使用法の紹介

1. ボタンで使用される値は、「OK」、「削除」など、ボタンに表示されるテキストを指します。 2. ...

CentOS 7にDockerをインストールする

Linuxシステムをお持ちでない場合は、ダウンロードとインストールについてはhttps://www....