昨日のことでしたが、苦労しました。
XAMPPで動いているMySQLをレプリケーションしようとしたんです。
始めにWindows7で動いている、同じXAMPPを入れたものは簡単にレプリケーションが出来ました。
同じ調子で、WindowsXPに入れたXAMPPのMySQLをレプリケーションのスレーブとして追加しようとしてはまりました。
正確な環境は覚えていないのですが、大体次のようだったと思います。
対象機器:
PC1(レプリケーションマスター)
Windows7、Xampp1.8.3、MySQL5.5
PC2(レプリケーションスレーブ)
Windows7、Xampp1.8.3、MySQL5.6
PC3(これからレプリケーションスレーブに加える)
WindowsXP、Xampp1.8.2、MySQL5.5
作業前の状況:
PC1とPC2のレプリケーションは成功。
PC1にPC3をレプリケーションスレーブとする作業を行う予定。
症状1: データの移動が出来ない。
PC1でレプリケーション用のデータをとり、PC2で展開したデータがPC3ではエラーになる。
PC1>mysqldump.exe -u root -p --all-databases --lock-all-tables >C:\db\dbdump.db
PC2>mysql.exe -u root -p <C:\db\dbdump.db --- OK
PC3>mysql.exe -u root -p <C:\db\dbdump.db --- NG
こんな感じのエラーが出てきます。
ERROR 1064 (42000) at line XXX: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'STATS_PERSISTENT=0' at line XX
調べると、STATS_PERSISTENTがMySQLの5.5では対応していないパラメータで、削除すれば上手く行くとのこと。
(参考URL FAT47の底辺インフラ議事録)
ですが、今のdbファイルでは内容がさっぱり判らない。
で、mysqldump.exeをググってみると、「-a」オプションでテキスト形式の出力が可能とのこと。
PC1>mysqldump.exe -u root -p --all-databases --lock-all-tables -a >C:\db\dbdump2.sql
STATS_PERSISTENT=0 -> /*STATS_PERSISTENT=0*/ とコメントアウト
PC3>mysql.exe -u root -p <C:\db\dbdump2rev.sql --- OK
さて、データが写ったのでレプリケーション開始。
PC3_mysql>start slave; --- NG
あちゃー。
続きは、また今度。
0 件のコメント:
コメントを投稿