Windows 2012に複数のMySQLインスタンスをインストールして起動する方法


12

MySQL 5.7をWindows 2012 VMにインストールしました。私は複数のインスタンスを作成して実行しようとしていますが、そのような単純なことが機能しないことに非常に不満を感じています。

MySQLをデフォルトの場所であるC:\ Program Files \ MySQL \ MySQL Server 5.7にインストールし、フォルダーをコピーして別のインスタンスを作成するために別のコピーを作成しました(これがどのように機能するのでしょうか?)

両方のMySQLインスタンスを下の画像に示します。

サーバー1 サーバー1

Server2
Server2

両方のサーバーのINI設定を以下に示します。

サーバー1

server-id = 1
log-bin = "mysql-bin"
binlog-ignore-db = test
binlog-ignore-db = information_schema
replicate-ignore-db = test
replicate-ignore-db = information_schema
relay-log = "mysql-relay -log "
auto-increment-increment = 2
auto-increment-offset = 1

Server2
server-id = 2
log-bin = "mysql-bin"
binlog-ignore-db = test
binlog-ignore-db = information_schema
replicate-ignore-db = test
replicate-ignore-db = information_schema
relay-log = "mysql- relay-log」
auto-increment-increment = 2
auto-increment-offset = 2

コマンドプロンプトを開き、
「C:\ Program Files \ MySQL \ MySQL Server 5.7 \ bin \ mysqld」
「C:\ Program Files \ MySQL \ MySQL Server 5.7-2 \ bin \ mysqld」と入力して、両方のサーバーを実行しています。

エラーは表示されないため、コマンドは正常に実行されているようですが、実行中のmysqlプロセスがあるかどうかを確認するためにタスクマネージャーを見ると、何も表示されません。

私は何を間違えていますか?


などのエラーログ含めるようにあなたの質問を編集してください
EEAA

問題は解決しました。
フランクマーティン

回答を投稿できるように、質問を開いてください。
EEAA

はい、回答を投稿できます。
フランクマーティン

回答:



11

私がしていた間違いは、MySQLインストールフォルダ全体をコピーすることでした。このフォルダをコピーする必要はありません。

  • C:\ MyInstances \ my1.iniなどの任意の場所で、実行するインスタンスごとに新しいiniファイルを作成します(上記の例を参照)。
  • 次に、C:\ MyInstances \ data1にdata1などの新しいフォルダーを作成し、その中にmysqlおよびinformation_schemaデータベースをコピーします。これらのデータベースは、MySQLがインストールされているデータフォルダーから取得します。Windows 2012(およびおそらく他のサーバーOS)では、通常はC:\ ProgramData \ MySQLです。
  • 次に、iniファイルで次を定義します。

datadir = C:/ MyInstances / data1

  1. 次に、サービスとしてMySQLをインストールする次のコマンドを実行します。サービスが作成されたら、単にサービスを実行します。

MySqlpath \ bin \ mysqld --install mysqld1 --defaults-file = PATH_TO_YOUR_INI_FILE

もちろん、各iniファイルでは、@ Anthony Fornitoで言及されているように、異なるポート番号を定義する必要があります。


11
  1. 別のデータフォルダーを作成し、NETWORK SERVICEにフルコントロールを付与します。
  2. my.iniファイルを新しいデータフォルダーにコピーします。
  3. mysql-init.txtという名前のデータディレクトリに新しいファイルを作成し、1行追加して、rootユーザーのパスワードが設定されていることを確認します。

    • ALTER USER 'root'@'localhost' IDENTIFIED BY '[Enter Password]';
  4. ポート、ソケット、datadir、および共有メモリのベース名を変更して、my.iniファイルを編集します。これらはすべて、MySQLの他のインスタンスと異なる必要があります。

my.ini:

[client]
port=3333
socket=MYSQL2_INST.SOCK
shared-memory-base-name=MYSQL2_INST

[mysqld]
shared-memory-base-name=MYSQL2_INST
socket=MYSQL2_INST.SOCK
port=3333
basedir="C:/Program Files/MySQL/MySQL Server 5.7"
datadir="E:/MySQL2/Data"
  1. コマンドラインから〜\ MySQL Server XY \ bin \に移動し、実行します

    • mysqld --install MySQL57-2 --defaults-file=E:\mysql2\data\my.ini --init-file=E:\mysql2\data\mysql-init.txt
  2. サービスを開始する

    • NET START MySQL57-2
  3. サービスが正常に開始されたことを確認してください。見つからなかった場合は、データフォルダーでエラーログを見つけることができます。


それに続いて、新しいサービスの取得を開始できません、PS C:\ MySQLInstances \ data> net start mysqld mysqldサービスが開始されています。mysqldサービスを開始できませんでした。サービスはエラーを報告しませんでした。詳細なヘルプはNET HELPMSG 3534.入力することで利用可能です
Rajat
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.