web-dev-qa-db-ja.com

MySQLマスター5.5-スレーブ5.6-不明なシステム変数 'binlog_checksum'、Error_code:1193

スレーブサーバーで次の警告が表示されます。

2016-11-18 22:48:03 12808 [Warning] Slave SQL: If a crash happens this configuration does not guarantee that the relay log info will be consistent, Error_code: 0
2016-11-18 22:48:03 12808 [Note] Slave SQL thread initialized, starting replication in log 'mysql-bin.018098' at position 920330293, relay log '/mnt/data/mysql/mysqld-relay-bin.318142' position: 473446279
2016-11-18 22:48:03 12808 [Note] Slave I/O thread: connected to master 'repl@xxx:3306',replication started in log 'mysql-bin.018103' at position 271452699
2016-11-18 22:48:03 12808 [Warning] Slave I/O: Notifying master by SET @master_binlog_checksum= @@global.binlog_checksum failed with error: Unknown system variable 'binlog_checksum', Error_code: 1193
2016-11-18 22:48:03 12808 [Warning] Slave I/O: Unknown system variable 'SERVER_UUID' on master. A probable cause is that the variable is not supported on the master (version: 5.5.42-log), even though it is on the slave (version: 5.6.31-log), Error_code: 1193
  1. マスターが5.6スレーブと互換性がないときに起こっていると私が理解していることから、それは正しいですか?
  2. これらの警告を無視する必要がありますか?そうでない場合、MySQLマスターに損傷を与えることなくこれを修正するにはどうすればよいですか?

マスターバージョン:

Variable_name            Value                         
-----------------------  ------------------------------
innodb_version           5.5.42                        
protocol_version         10                            
slave_type_conversions                                 
version                  5.5.42-log                    
version_comment          MySQL Community Server (GPL)  
version_compile_machine  x86_64                        
version_compile_os       Linux         

スレーブバージョン:

Variable_name            Value                         
-----------------------  ------------------------------
innodb_version           5.6.31                        
protocol_version         10                            
slave_type_conversions                                 
version                  5.6.31-log                    
version_comment          MySQL Community Server (GPL)  
version_compile_machine  x86_64                        
version_compile_os       Linux      

よろしくお願いします!

2
Berlin

スレーブでSHOW SLAVE STATUS\Gを実行し、Slave_IO_Running: Yesが表示される場合、IOスレッドは問題ありません。

それにもかかわらず、警告に注意してください

2016-11-18 22:48:03 12808 [警告]スレーブSQL:クラッシュが発生した場合、この構成はリレーログ情報の一貫性を保証しません、Error_code:0

エラーコード0は、エラーではなく、単なる情報であることを意味します。

2016-11-18 22:48:03 12808 [警告]スレーブI/O:SET @ master_binlog_checksum = @@ global.binlog_checksumによるマスターへの通知がエラーで失敗しました:不明なシステム変数 'binlog_checksum'、Error_code:1193

エラーには変数binlog_checksumが含まれるとのことですが、.

MySQL Documentation for binlog_checksum によると

このオプションを有効にすると、マスターはバイナリログに書き込まれたイベントのチェックサムを書き込みます。 NONEに設定して無効にするか、チェックサムの生成に使用するアルゴリズムの名前。現在、CRC32チェックサムのみがサポートされています。 MySQL 5.6.6以降、CRC32がデフォルトです。

このオプションはMySQL 5.6.2で追加されました。

マスターが5.5.42であるため、マスターをスレーブと比較するためのbinlog_checksumはありません。警告は有効です。

スレーブでbinlog_checksumを「NONE」に設定すると、このチェックが無効になる可能性があります。

2016-11-18 22:48:03 12808 [警告]スレーブI/O:マスターの不明なシステム変数 'SERVER_UUID'。推定される原因は、変数がスレーブ(バージョン:5.6.31-log)にあるにもかかわらず、マスター(バージョン:5.5.42-log)でサポートされていないことです。Error_code:1193

これは同じ問題です。オプション server_uuid は、メッセージ自体が示すように、MySQL 5.5.42(マスター)には存在しません。

エピローグ

レプリケーションが実行されている限り、今のところ問題ありません。マスターをMySQL 5.6.31にできるだけ早く取得することを強くお勧めします。どうして ?

MySQL 5.6はDATETIMEにマイクロ秒を導入しました。マスター(5.5.42)がDATETIMEをスレーブ(5.6.31)に送信すると、IOスレッドはすぐに中断します。 2015-01-02から投稿を読んでください私がこれに言及したところ

両方でDATETIMEレプリケーション(binlog_formatSTATEMENTに設定)に切り替えることで、このSTATEMENTの混乱を回避できます Master(5.5) および スレーブ(5.6)

1
RolandoMySQLDBA