ホームページ > データベース > mysql チュートリアル > 同じサーバーに複数の MySQL インスタンスをインストールする方法

同じサーバーに複数の MySQL インスタンスをインストールする方法

PHPz
リリース: 2023-04-20 14:03:21
オリジナル
1875 人が閲覧しました

MySQL は、さまざまなアプリケーションのデータ管理に広く使用されているオープンソースのリレーショナル データベース管理システムです。実際の使用では、異なるアプリケーションやシナリオをサポートするために、複数の MySQL インスタンスを同時にインストールする必要がある場合がありますが、この記事では、同じサーバーに複数の MySQL インスタンスをインストールする方法を紹介します。

1. インストール前の準備

複数の MySQL インスタンスをインストールする前に、次の準備を実行する必要があります:

  1. 複数の MySQL インストール パッケージを準備します。 MySQL 公式 Web サイトから自分の環境に適したバージョンを入手します: https://dev.mysql.com/downloads/
  2. 複数の MySQL データ ディレクトリを準備し、異なる MySQL インスタンスをサポートするために異なるディレクトリを作成できます。例: /data/mysql1、/data/mysql2 など。
  3. MySQL インスタンスごとに、対応する MySQL インストール パスとデータ ディレクトリ権限を持つ独立した MySQL ユーザーを構成します。

2. バイナリ パッケージに基づいて複数の MySQL インスタンスをインストールする

バイナリ パッケージに基づいて複数の MySQL インスタンスをインストールする手順は次のとおりです。 MySQL パッケージをインストールして名前を変更します。

  1. 複数の MySQL インストール パッケージを解凍した後、区別しやすいように、mysql1、mysql2 などの別の名前に名前を変更できます。
$ tar -zxvf mysql-8.0.22-linux-glibc2.12-x86_64.tar.gz

$ mv mysql-8.0.22-linux-glibc2.12-x86_64 mysql1

$ tar -zxvf mysql-8.0.22-linux-glibc2.12-x86_64.tar.gz

$ mv mysql-8.0.22-linux-glibc2.12-x86_64 mysql2


初期化データディレクトリ

  1. 各 MySQL インスタンスには独立したデータ ディレクトリが必要で、mysql_install_db コマンドを使用して初期化する必要があります。 mysql1 および mysql2 インスタンスを初期化するコマンドは次のとおりです:
$ cd mysql1

$ bin/mysqld --initialize --user=mysql --basedir=/share/opt/mysql1 --datadir= /data /mysql1

$ cd ../mysql2

$ bin/mysqld --initialize --user=mysql --basedir=/share/opt/mysql2 --datadir=/data/mysql2


MySQL サービスのインストール

  1. MySQL インスタンスごとに、mysqld_safe コマンドを使用して MySQL サービスをインストールする必要があります。mysql1 および mysql2 インスタンスをインストールするコマンドは次のとおりです:
$ cp サポートファイル/mysql.server /etc/init.d/mysql1

$ cp サポートファイル/mysql.server /etc/init.d/mysql2

$ chmod x /etc/init .d/mysql1

$ chmod x /etc/init.d/mysql2
$ chkconfig --add mysql1
$ chkconfig --add mysql2
$ service mysql1 start
$ service mysql2 start


MySQL インスタンスの構成

  1. MySQL インスタンスごとに、独立した構成ファイル my.cnf が必要です。MySQL インストール ディレクトリに my.cnf ファイルを作成できます。以下は my.cnf ファイルの例です。 :
[mysqld]

datadir=/data/mysql1

socket=/share/tmp/mysql1.sock

port = 3306
user=mysql
log-error =/data/mysql1/mysql.err
pid-file=/share/tmp/mysql1.pid

次は、mysql2 の構成です。インスタンス

[mysqld2]

datadir= /data/mysql2

socket=/share/tmp/mysql2.sock

port = 3307
user=mysql
ログエラー=/data/mysql2/mysql.err
pid-file =/share/tmp/mysql2.pid


MySQL ユーザーの構成

  1. 次のコマンドを使用して、 MySQL ユーザーを作成し、対応するディレクトリ権限を付与します。
$ useradd -r -g mysql -s /bin/false mysql1

$ useradd -r -g mysql -s /bin/false mysql2

$ chown -R mysql:mysql /data/mysql1

$ chown - R mysql:mysql /data/mysql2
$ chown -R mysql:mysql /share/opt/mysql1
$ chown -R mysql :mysql /share/opt/mysql2

3. 複数の MySQL インスタンスの Docker コンテナーのインストールに基づいて

Docker 環境を準備します

  1. 次のことを行う必要があります。まずサーバーに Docker 環境をインストールし、MySQL の Docker イメージをプルします。最新バージョンの MySQL ミラーリング コマンドをプルするには、次の手順を実行します:
$ docker pull mysql/mysql-server:latest

MySQL コンテナの起動

  1. 複数の MySQL コンテナを起動できます。複数のインスタンスのニーズを満たすために、異なるポート、データ ボリューム、構成ファイルを指定することで、異なるインスタンスを区別できます。以下は、2 つの異なる MySQL インスタンスを起動するコマンドの例です:
$ docker run --name=mysql1 -d \

-e MYSQL_ROOT_PASSWORD=your_password \

-p 3306:3306 \

-v /data/mysql1:/var/lib/mysql \
-v /share/opt/mysql1:/etc/mysql \
mysql/mysql-server:latest
$ docker run -- name=mysql2 -d \
-e MYSQL_ROOT_PASSWORD=your_password \
-p 3307:3306 \
-v /data/mysql2:/var/lib/mysql \
-v /share/opt /mysql2:/etc/mysql \
mysql/mysql-server:latest


MySQL インスタンスの構成

  1. 異なるデータ ボリュームに異なるインスタンスを作成できます 構成ファイルmy.cnf を作成し、それを別のコンテナーにマウントします。以下は my.cnf の例です。
以下は mysql1 インスタンスの構成です

[mysqld]

datadir = /var/lib/mysql

socket = /var/run/mysqld/mysqld.sock


注: この設定は MySQL 5.7 以前のバージョンでのみ有効です

symbolic-links = 0

カスタマイズされた MySQL 構成

[mysqld]

datadir = /var/lib/mysql

socket = /var/run/mysqld/mysqld.sock

port = 3306
user = mysql
log -error = / var/lib/mysql/mysql.err
pid-file = /var/run/mysqld/mysqld.pid

次は、mysql2 インスタンスの構成です

[mysqld2]

データディレクトリ = /var/lib/mysql

ソケット = /var/run/mysqld/mysqld.sock

シンボリックリンク = 0

カスタマイズされた MySQL 構成

[mysqld2]
datadir = /var/lib/mysql
socket = /var/run/mysqld/mysqld.sock
port = 3307
user = mysql
log-error = /var/lib/mysql/mysql.err
pid-file = /var/run/mysqld/mysqld.pid

  1. 複数の MySQL を使用するインスタンス

複数の MySQL インスタンスを構成した後、対応するポートに接続し、対応するデータベース インスタンス名を使用し、対応するユーザーを構成することで、複数の MySQL インスタンスを使用できます:

mysql -h localhost -u ユーザー名 1 -p -P 3306 -D データベース 1
mysql -h localhost -u ユーザー名 2 -p -P 3307 -D データベース 2

概要

この記事の概要次の方法について説明します。複数の MySQL インスタンスを同じサーバーにインストールします。これには、バイナリ パッケージに基づくインストールと Docker コンテナに基づくインストールが含まれます。複数の MySQL インスタンスを合理的に使用することで、さまざまなアプリケーションやシナリオをより適切にサポートでき、データベースのパフォーマンスと信頼性を向上できます。

以上が同じサーバーに複数の MySQL インスタンスをインストールする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート