マスターマスターレプリケーション用に、異なるマシンで実行されている2つのWAMP
サーバーを構成しました。ネットワークにlinksys
ルーターを使用しています。ワイヤレスネットワークを作成しましたが、サーバーボックスの1つにWIFI
がないため、ケーブルを使用してルーターに接続しました。設定後、すべてが問題ないように見えますが、サーバーはスレーブとして相互に接続しているようには見えません。以下はサーバーのステータスです。
Variable Value
Slave_IO_State: Connecting to master
Master_Host: 192.168.1.100
Master_User: master
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 95849
Relay_Log_File: Chibuzo-PC-relay-bin.000001
Relay_Log_Pos : 4
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Connecting
Slave_SQL_Running: Yes
Replicate_Do_DB: ticket
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter 0
Exec_Master_Log_Pos: 95849
Relay_Log_Space: 107
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master:
IPアドレス192.168.1.102のサーバー1で次のクエリを実行すると、次の結果が得られました
SELECT user, Host FROM mysql.user WHERE Repl_slave_priv = 'Y';
+-----------+-------------------------+
| User | Host |
+-----------+-------------------------+
| root | localhost |
| root | 127.0.0.1 |
| root | ::1 |
| master | 192.168.1.100 |
+-----------+-------------------------+
IP 192.168.1.100のサーバー2の場合
+-----------+-------------------------+
| User | Host |
+-----------+-------------------------+
| root | localhost |
| root | 127.0.0.1 |
| root | ::1 |
| master | 192.168.1.102 |
+-----------+-------------------------+
これは192.168.1.102のエラーログの一部です
121230 1:23:29 [Note] Plugin 'FEDERATED' is disabled.
121230 1:23:29 InnoDB: The InnoDB memory heap is disabled
121230 1:23:29 InnoDB: Mutexes and rw_locks use Windows interlocked functions
121230 1:23:29 InnoDB: Compressed tables use zlib 1.2.3
121230 1:23:29 InnoDB: Initializing buffer pool, size = 16.0M
121230 1:23:29 InnoDB: Completed initialization of buffer pool
121230 1:23:29 InnoDB: highest supported file format is Barracuda.
121230 1:23:30 InnoDB: Waiting for the background threads to start
121230 1:23:31 InnoDB: 1.1.8 started; log sequence number 5483034
121230 1:23:31 [Note] Server hostname (bind-address): '(null)'; port: 3306
121230 1:23:31 [Note] - '(null)' resolves to '::';
121230 1:23:31 [Note] - '(null)' resolves to '0.0.0.0';
121230 1:23:31 [Note] Server socket created on IP: '0.0.0.0'.
121230 1:23:31 [Note] Event Scheduler: Loaded 0 events
121230 1:23:31 [Note] wampmysqld: ready for connections.
Version: '5.5.24-log' socket: '' port: 3306 MySQL Community Server (GPL)
121230 2:33:12 [Warning] Neither --relay-log nor --relay-log-index were used; so replication may break when this MySQL server acts as a slave and has his hostname changed!! Please use '--relay-log=Chibuzo-PC-relay-bin' to avoid this problem.
121230 2:33:12 [Note] 'CHANGE MASTER TO executed'. Previous state master_Host='', master_port='3306', master_log_file='', master_log_pos='4'. New state master_Host='192.168.1.100', master_port='3306', master_log_file='mysql-bin.000001', master_log_pos='95849'.
121230 2:38:50 [Note] Slave SQL thread initialized, starting replication in log 'mysql-bin.000001' at position 95849, relay log '.\Chibuzo-PC-relay-bin.000001' position: 4
121230 2:39:11 [ERROR] Slave I/O: error connecting to master '[email protected]:3306' - retry-time: 60 retries: 86400, Error_code: 2003
130101 2:56:57 [Note] wampmysqld: Normal shutdown
130101 2:56:57 [Note] Event Scheduler: Purging the queue. 0 events
130101 2:56:58 [Note] Error reading relay log event: slave SQL thread was killed
130101 2:56:58 [Note] Slave I/O thread killed while connecting to master
130101 2:56:58 [Note] Slave I/O thread exiting, read up to log 'mysql-bin.000001', position 95849
130101 2:57:00 [Warning] wampmysqld: Forcing close of thread 1011 user: 'root'
SHOW binary LOGS;
192.168.1.102
+------------------+---------------+
| Log_name | File_size |
+------------------+---------------+
| mysql-bin.000001 | 1455 |
| mysql-bin.000002 | 236 |
| mysql-bin.000003 | 6417 |
| mysql-bin.000004 | 12755 |
+-----------+----------------------+
192.168.1.100
+------------------+---------------+
| Log_name | File_size |
+------------------+---------------+
| mysql-bin.000001 | 96096 |
| mysql-bin.000002 | 91695 |
| mysql-bin.000003 | 48773 |
+------------------+---------------+
エラーログ:
[ERROR] Slave I/O: error connecting to master '[email protected]:3306' - retry-time: 60 retries: 86400, Error_code: 2003
Error_code:20:「(2003)Ca n't connect to MySQL server on 'server'(10061)エラーは、ネットワーク接続が拒否されたことを示します。 MySQLサーバーが実行されていること、ネットワーク接続が有効になっていること、指定したネットワークポートがサーバーで構成されているポートであることを確認する必要があります。
「マスター」アカウントを使用して、あるサーバーから別のサーバーに接続してみます。
192.168.1.100の場合:
mysql -h 192.168.1.102 -u master -p
192.168.1.102の場合:
mysql -h 192.168.1.100 -u master -p
firewallを確認して、ネットワーク通信に関連してpingなどを試してみてください...
マックス。
提案があります
スレーブで以下を実行します。
STOP SLAVE;
CHANGE MASTER TO
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=95849;
START SLAVE;
SELECT SLEEP(15);
SHOW SLAVE STATUS\G
これにより、すべてのリレーログがリセットされ、ログファイルからの接続とエラーメッセージからの位置付けが試行されます。あなたが取得する場合 Slave_IO_Running: Connecting
、調査する2つのシナリオがあります
シナリオ#1:binlog mysql-bin.000001
192.168.1.100が破損している可能性があります。
これを実行して確認できます
mysqlbinlog --start-position=95849 mysql-bin.000001 > binlog_stuff.txt
診る binlog_stuff.txt
binlogダンプからのクリーンなステートメントまたはエラーが含まれているかどうかを確認します。
シナリオ#2:binlog mysql-bin.000001
192.168.1.100はMySQLの新しいバージョンからのものです
次のバイナリログにスキップすると役立つかどうかを確認できます
STOP SLAVE;
CHANGE MASTER TO
MASTER_LOG_FILE='mysql-bin.000002',
MASTER_LOG_POS=107;
START SLAVE;
SELECT SLEEP(15);
SHOW SLAVE STATUS\G
同じエラーが発生した場合は、それを元に戻すことができます
STOP SLAVE;
CHANGE MASTER TO
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=95849;
START SLAVE;
SELECT SLEEP(15);
SHOW SLAVE STATUS\G
マスターサーバーは、何度も失敗した後、着信接続をブロックすることがあります。他の接続関連の問題をテストした後、頻繁に発生します。
とにかく、マスターサーバーでホストをフラッシュしてみてください:
mysqladmin -u root -p flush-hosts
次にスレーブを再起動します。
service mysql restart
接続されているかどうかを確認します。
tail -30f /var/log/mysql/error.log