マシン上の各 MySQL インスタンスには、独自のデータディレクトリを持たせるようにします。 場所は、--datadir=
オプションを使用して指定します。
dir_name
新しいインスタンス用のデータディレクトリをセットアップするには、さまざまな方法があります。
新しいデータディレクトリを作成する。
既存のデータディレクトリをコピーする。
次に、それぞれの方法について詳しく説明します。
通常、2 つのサーバーが同じデータベース内のデータを更新するようにするべきではありません。 このようにすると、使用しているオペレーティングシステムが、障害のないシステムロックをサポートしない場合に、好ましくない意外な結果が生じるおそれがあります。 (この警告にもかかわらず) 同じデータディレクトリを使用する複数のサーバーを実行し、これらのロギングが有効な場合、適切なオプションを使用して、各サーバーについて一意となるログファイル名を指定する必要があります。 そうでなければ、サーバーは同じファイルにログを記録しようとします。
前述の予防策が遵守されたとしても、この種類のセットアップは MyISAM
および MERGE
テーブルでのみ機能し、ほかのストレージエンジンでは機能しません。 さらに、データディレクトリを複数のサーバー間で共有することに対するこの警告は、NFS 環境では常に該当します。 複数の MySQL Server が共通のデータディレクトリに NFS 経由でアクセスできるようにすることは、非常によくない方法です。 主な問題は、NFS が速度のボトルネックになることです。 これはそのように使用するためのものではありません。 NFS のもう 1 つのリスクは、2 つ以上のサーバーが相互に干渉しないような方法を考案する必要があるということです。 通常、NFS ファイルロックは lockd
デーモンで処理されますが、現在のところ、どのような状況でも 100% の信頼性でロックを実行できるプラットフォームは存在しません。
新規データディレクトリの作成
この方法では、データディレクトリは MySQL を最初にインストールしたときと同じ状態であり、MySQL アカウントのデフォルトセットを持ち、ユーザーデータはありません。
Unix では、データディレクトリを初期化します。 セクション2.10「インストール後のセットアップとテスト」を参照してください。
Windows では、データディレクトリは MySQL 配布に含まれています。
Windows 用の MySQL Zip アーカイブ配布には、未変更のままのデータディレクトリが格納されています。 そのような配布を一時的な場所に解凍し、新規インスタンスをセットアップする場所にその
data
ディレクトリをコピーします。Windows MSI パッケージインストーラは、インストールされたサーバーが使用するデータディレクトリを作成および設定しますが、インストールディレクトリの下に
data
という名前の初期 「template」 データディレクトリも作成します。 MSI パッケージを使用してインストールが実行されたあと、テンプレートデータディレクトリをコピーして、追加の MySQL インスタンスをセットアップすることができます。
既存のデータディレクトリのコピー
この方法を使用すると、データディレクトリ内に存在するすべての MySQL アカウントまたはユーザーデータは新しいデータディレクトリに引き継がれます。
データディレクトリを使用する既存の MySQL インスタンスを停止します。 これは、保留中の変更をインスタンスがディスクにフラッシュするクリーンシャットダウンである必要があります。
新規データディレクトリがあるべき場所にデータディレクトリをコピーします。
既存のインスタンスによって使用されるオプションファイル
my.cnf
またはmy.ini
をコピーします。 これは新規インスタンスの基礎となります。元のデータディレクトリを参照するすべてのパス名が新規データディレクトリを参照するように、新規オプションファイルを変更します。 さらに、インスタンスごとに一意でなければならない TCP/IP ポート番号やログファイルなど、ほかのオプションも変更します。 インスタンスごとに一意でなければならないパラメータのリストについては、セクション5.8「1 つのマシン上での複数の MySQL インスタンスの実行」を参照してください。
新規インスタンスを起動し、新規オプションファイルを使用するよう指示します。