私は、MySQLマスターレプリケーション(Debian 6.0.1上)を次の指示に従って忠実にセットアップしています: http://www.neocodesoftware.com/replication/
私が持っている限り:
mysql > show master status;
残念ながら、これは有用な出力ではなく、次の結果を生成します。
Empty set (0.00 sec)
/var/log/mysql.err
のエラーログは単なる空のファイルなので、手掛かりはありません。
何か案は?
これは私が1つのサーバーの/etc/mysql/my.cnf
に入れたものです(他のサーバーに合わせて適切に修正されています)。
server-id = 1
replicate-same-server-id = 0
auto-increment-increment = 2
auto-increment-offset = 1
master-Host = 10.0.0.3
master-user = <myusername>
master-password = <mypass>
master-connect-retry = 60
replicate-do-db = fruit
log-bin = /var/log/mysql-replication.log
binlog-do-db = fruit
また、ユーザーを設定しました。上記のユーザー名/パスワード/ IPアドレスを使用して、サーバーAのMySQLからサーバーBのデータベースに接続できます。
興味深いことに、バイナリログが有効になっていない状態でmysqlをPCで実行しています。私は次のことをしました:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 19
Server version: 5.5.12 MySQL Community Server (GPL)
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show master status;
Empty set (0.00 sec)
mysql> show binary logs;
ERROR 1381 (HY000): You are not using binary logging
mysql>
示されているように、MySQLはSHOW MASTER STATUSに対して「Empty Set」を表示するため、バイナリログが有効になっていないためです。私の設定を考えれば、それは明らかです。
最初にすべきことは、エラーログに特定のフォルダがあることを確認することです
[mysqld]
log-error=/var/log/mysql/mysql.err
log-bin = /var/log/mysql/mysql-replication.log
次に、以下を実行します。
service mysql stop
mkdir /var/log/mysql
chown -R mysql:mysql /var/log/mysql
service mysql start
次に、mysqlクライアントでこれらのSQLコマンドを実行します
SHOW MASTER STATUS;
SHOW BINARY LOGS;
以前と同じ出力が得られた場合、MySQLはバイナリログを指定されたフォルダに書き込むことができません。あなたのジレンマが、MySQLが/ var/logに書き込めない理由になります。
これは完全な答えではありませんが、これが役に立てば幸いです。
Mysqlのバージョンが5.0を超える場合、my.cnfのレプリケーション設定master-Host、master-user、master-password、およびその他のいくつかは無視されます。レプリケーションの初期設定にはCHANGE MASTER TOを使用します。
比較 http://dev.mysql.com/doc/refman/5.1/en/replication-howto-slaveinit.html
log-bin
の設定が正しくないため、MySQLはバイナリログを書き込むことができません。これはファイル名ではなく、部分的なファイル名ですパターン、 MySQLがディレクトリの先頭に追加し、シーケンス番号と拡張子を追加します。通常の設定は次のようなものです
log-bin=log-bin
マニュアルを確認してください。