web-dev-qa-db-ja.com

MySQLの単純なレプリケーションの問題:「マスターステータスの表示」で「空のセット」が生成されますか?

私は、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のデータベースに接続できます。

10
simon

興味深いことに、バイナリログが有効になっていない状態で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に書き込めない理由になります。

これは完全な答えではありませんが、これが役に立てば幸いです。

7
RolandoMySQLDBA

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

1

log-binの設定が正しくないため、MySQLはバイナリログを書き込むことができません。これはファイル名ではなく、部分的なファイル名ですパターン、 MySQLがディレクトリの先頭に追加し、シーケンス番号と拡張子を追加します。通常の設定は次のようなものです

log-bin=log-bin

マニュアルを確認してください。

0
user207421