渡辺様
 
お忙しいところ、レスポンスいただき、ありがとうございました。
 
-----Original Message-----
差出人: Watanabe Tomoyuki
日時: 2013年2月14日 9:14
宛先: ml@mysql.gr.jp
件名: [mysql 15926] Re: レプリケーション構築について(長文です)(質問)
 
 
こんにちは。渡辺です。
 
細かい部分まで読み込んでませんが、まだ返信がないようなのでとりあえず自分が気が付いたところを書きます。
 
> なお、下記のマスターの情報はWorkbenchで設定する場所がないので、my.iniファイルの[mysqld]セクションに追加した。
> master-host='123.456.789.101'(マスターのIPアドレス)
> master-user='repli'(マスターに登録したレプリケーション用ユーザー名)
> master-password='password'(マスターに登録したレプリケーション用ユーザーのパスワード)
> master-port=3306
 
この部分はまるごと不要です。(MySQL5.5から不要になりました。)
masterの情報はCHANGE MASTER TOの文で指定するだけで大丈夫です。
確かに、CHANGE MASTER TOで指定する内容と同じですよね。
CHANGE MASTER TOがエラーになるので、古い解説本(MySQLデータベース構築バイブル,2008年7月21日初版)に「スレーブとして動作させるためには、最低限、次のオプションをmy.cnfに記述する必要があります」とあったので、敢えて入れてみました。
my.iniファイルから削除しておいたほうがいいでしょうか?
 
> ”MySQL error log”を見る方法
 
my.ini の log-error=で指定したファイルに書き出されます。
 
“C:/Program Files/MySQL/MySQL Server 5.5/ log-error”
 
がなければ
 
log-error=” C:/ProgramData/MySQL/MySQL Server 5.5/Log/error.log”
 
のように指定してみてください。(指定するディレクトリは作っておく必要があります。)
 
C:\ProgramData\MySQL\MySQL Server 5.5\dataにlog-error.errがありました。
このファイルをメモ帳(テキストエディタ)で開こうとすると、「…はほかのアプリケーションで使われているため、アクセスできません。」というダイアログが表示されるので、諦めていましたが、MySQLのサービスを止めたら開けました。
 
そこで、下記のエラーが発生していたあたりを探したところ、
ERROR 1201 (HY000): Could not initialize master info structures; more error messages can be found in the MySQL error log
 
以下のログが記録されていました。
=====ここから
130201 15:29:14 [Note] Plugin 'FEDERATED' is disabled.
130201 15:29:14 InnoDB: The InnoDB memory heap is disabled
130201 15:29:14 InnoDB: Mutexes and rw_locks use Windows interlocked functions
130201 15:29:14 InnoDB: Compressed tables use zlib 1.2.3
130201 15:29:14 InnoDB: Initializing buffer pool, size = 305.0M
130201 15:29:14 InnoDB: Completed initialization of buffer pool
130201 15:29:14 InnoDB: highest supported file format is Barracuda.
130201 15:29:14  InnoDB: Waiting for the background threads to start
130201 15:29:15 InnoDB: 1.1.8 started; log sequence number 4571351802
130201 15:29:15 [Note] Server hostname (bind-address): '0.0.0.0'; port: 3306 ←マスターのIPアドレスと違う
130201 15:29:15 [Note]   - '0.0.0.0' resolves to '0.0.0.0';
130201 15:29:15 [Note] Server socket created on IP: '0.0.0.0'.
130201 15:29:16 [ERROR] Failed to open the relay log '.\Toshijoho_0427-relay-bin.000001' (relay_log_pos 4)
                             ←このファイルはC:\ProgramData\MySQL\MySQL Server 5.5\dataにあります。
130201 15:29:16 [ERROR] Could not find target log during relay log initialization
130201 15:29:16 [ERROR] Failed to initialize the master info structure
                             ←master.infoファイルもあります。
130201 15:29:16 [Note] Event Scheduler: Loaded 0 events
130201 15:29:16 [Note] C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld: ready for connections.
Version: '5.5.25-log'  socket: ''  port: 3306  MySQL Community Server (GPL)
130201 16:12:33 [ERROR] Failed to open the relay log '.\Toshijoho_0427-relay-bin.000001' (relay_log_pos 4)
130201 16:12:33 [ERROR] Could not find target log during relay log initialization
=====ここまで
 
ほかに、気になることが一つあります。
MySQLコマンドラインクライアントを起動し、tee コマンドで操作ログをファイルに書き出そうとしました。
mysql> tee ‘ファイル名’
C:Program Files\MySQL\MySQL Server 5.5\bin\mysql.exe: Can’t Create/write to file ‘ファイル名’ (Errcode: 13)
Error logging to file ‘ファイル名’
mysql>
 
すると、上記のようにファイルを作れませんでした。
これは、アクセス権限が影響していると思い、ファイルの保存先をデスクトップにしたら、書き出せました。
ちなみに、マスターではC:Program Files\MySQL\MySQL Server 5.5\binの下にファイルを書き出せました。
 
この辺りが影響しているのでしょうか?