Windows 2012 VMにMySQL 5.7をインストールしました。複数のインスタンスを作成して実行しようとしていますが、そのような単純なものが機能しないことに非常に不満を感じています。
MySQLをC:\ Program Files\MySQL\MySQL Server 5.7にインストールしました。これはデフォルトの場所であり、フォルダをコピーして別のコピーを作成しました別のインスタンスを作成します(これがどのように機能するのでしょうか?)
両方のMySQLインスタンスが下の画像に表示されています。
両方のサーバーのINI設定を以下に示します。
Server1
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
自動インクリメントオフセット= 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
自動増分オフセット= 2
コマンドプロンプトを開き、次のように入力して、両方のサーバーを実行しています。
"C:\ Program Files\MySQL\MySQL Server 5.7\bin\mysqld"
"C:\ Program Files\MySQL\MySQL Server 5.7-2\bin\mysqld"
エラーが表示されないため、コマンドは正常に実行されているようですが、タスクマネージャーでmysqlプロセスが実行されているかどうかを確認すると、何も表示されません。
何が悪いのですか?
私が行っていた間違いは、MySQLインストールフォルダー全体をコピーすることでした。このフォルダをコピーする必要はありません。
datadir = C:/ MyInstances/data1
MySqlpath\bin\mysqld --install mysqld1 --defaults-file = PATH_TO_YOUR_INI_FILE
もちろん、各iniファイルで、@ Anthony Fornitoによって言及されているように、異なるポート番号を定義する必要があります。
Mysql-init.txtという名前のデータディレクトリに新しいファイルを作成し、1行を追加して、rootユーザーのパスワードが設定されていることを確認します。
ALTER USER 'root'@'localhost' IDENTIFIED BY '[Enter Password]';
My.iniファイルを編集して、ポート、ソケット、datadir、および共有メモリのベース名を変更します。これらはすべて、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"
コマンドラインから〜\ MySQL Server X.Y\bin \に移動して実行します
mysqld --install MySQL57-2 --defaults-file=E:\mysql2\data\my.ini --init-file=E:\mysql2\data\mysql-init.txt
サービスを開始する
NET START MySQL57-2
サービスが正常に開始したことを確認してください。そうでない場合は、データフォルダーでエラーログを見つけることができます。それ以外の場合は、問題ありません。
同じポートで実行しようとしていたと思います。
異なるようにポート番号を変更しました