sql >> データベース >  >> RDS >> Mysql

同じマシンで複数のMySQLインスタンスを実行する方法

    場合によっては、単一のサーバーで複数のMySQLインスタンスを実行する必要があります。たとえば、ステージング、テスト、および本番用にさまざまなMySQLインスタンスをテストする必要がある場合があります。この記事では、同じマシンで複数のMySQLインスタンスを実行する方法を説明しますが、異なるログファイルと構成パラメーターを使用して異なるポートを使用します。


    同じマシンで複数のMySQLインスタンスを実行する方法

    同じマシンで複数のMySQLインスタンスを実行する手順は次のとおりです。


    1。 MySQL構成ファイルを開きます

    通常、MySQL構成ファイルは /etc/mysql/my.cnfにあります。 。ターミナルを開き、次のコマンドを実行してMySQL構成ファイルを開きます。

    $ sudo vi /etc/mysql/my.cnf


    2。複数のMySQLインスタンスを構成する

    デフォルトのMySQL構成は、以下に示すものと似ています。

    [mysqld] 
    user = mysql 
    pid-file = /var/run/mysqld/mysqld.pid 
    socket = /var/run/mysqld/mysqld.sock 
    port = 3306 
    datadir = /data/mysql/mysql

    上記のコードブロックをコピーして、同じファイルに貼り付けます。置換[mysqld] [ mysqld1]を使用 ポート値を3307に変更します。これにより、新しいインスタンスが mysqld1になります。 別のプロセス名mysqld1を使用して別のポート3307で実行します。同様に、pid-file、socket、datadir変数のファイル名を次のように変更します。

    以下の各インスタンスのdatadirフォルダーを必ずコピーしてください。 また、ユーザーが mysqlであることを確認してください ユーザーにはアクセス許可があります。各インスタンスには独自のデータディレクトリが必要です。

    [mysqld1] 
    user = mysql 
    pid-file = /var/run/mysqld/mysqld1.pid 
    socket = /var/run/mysqld/mysqld1.sock 
    port = 3307 
    datadir = /data/mysql/mysql1

    mysqld1 mysqldとは別のインスタンスとして実行されます

    同様に、以下に示すように、さらに多くのインスタンスを作成できます

    [mysqld2] 
    user = mysql 
    pid-file = /var/run/mysqld/mysqld2.pid 
    socket = /var/run/mysqld/mysqld2.sock 
    port = 3308 
    datadir = /data/mysql/mysql2 
    .... 
    [mysqldN] 
    user = mysql 
    pid-file = /var/run/mysqld/mysqldN.pid 
    socket = /var/run/mysqld/mysqldN.sock 
    port = N 
    datadir = /data/mysql/mysqlN

    インスタンスごとに異なるpidファイル、ソケットファイル、データディレクトリを指定し、ユーザーが mysqlであることを確認してください。 mysql のため、ディレクトリ権限が必要です ユーザーは必要なファイルとディレクトリを作成できる必要があります。


    3。複数のインスタンスを管理する

    mysqld を使用して、各インスタンスを個別に開始できます。 以下のコマンド。 mysqlNを置き換えます 選択したインスタンス(例:mysql1、mysql2など)

    mysqld --initialize --user=mysql --datadir=/home/mysql/mysqlN

    何らかの理由で上記の構成が機能しない場合は、my.cnfファイルを /etc/my.cnfにコピーします。 場所を確認して、再試行してください。場合によっては、mysqlは /etc/mysql/my.cnfで構成された複数のインスタンスを登録しません。

    $ sudo cp /etc/mysql/my.cnf /etc/my.cnf

    コマンドラインから特定のインスタンス(mysqld1など)にログインする場合は、-Sオプションを使用してそのソケットファイルの場所を指定する必要があります。それ以外の場合は、デフォルトのMySQLインスタンスにログインします。

    mysql -u root -p -S /var/run/mysqld/mysqld1.sock

    この記事が、同じサーバー上で複数のMySQLインスタンスを構成および管理するのに役立つことを願っています。

    MySQL用のレポートツールが必要ですか? Ubiqを使用すると、データを数分で簡単に視覚化し、リアルタイムのダッシュボードで監視できます。今日お試しください。

    1. MySQLのENUM(列挙)データ型:トップ12の事実と役立つヒント

    2. SaaSサブスクリプションデータモデル

    3. WEEKDAY()の例– MySQL

    4. 同じサーバー上のコピーとしてデータベースをどのようにバックアップおよび復元しますか?