レプリケーションで Slave_IO_Running: No になった原因について
昨日MySQLのレプリケーション設定をして今日ステータス確認してみたら、Slave_IO_Running: Noでレプリケーションが止まっていた。エラーログには下記のように出ており、どうやらmax_allowed_packetの値が小さかったらしい。
max_allowed_packet=16Mに設定
130606 9:03:02 [ERROR] Error reading packet from server: Got packet bigger than 'max_allowed_packet' bytes ( server_errno=2020) 130606 9:03:02 [ERROR] Log entry on master is longer than max_allowed_packet (1049241) on slave. If the entry is correct, restart the server with a higher value of max_allowed_packet 130606 9:03:02 [Note] Slave I/O thread exiting, read up to log 'mysql-bin.000084', position 58622911 130606 10:44:02 [Note] Error reading relay log event: slave SQL thread was killed
下記エラーについては、
innodb_buffer_pool_size
innodb_log_file_size
の値を大きくする必要があるようだけどMySQLを停止しないといけないのでいずれやりたい。
InnoDB: ERROR: the age of the last checkpoint is 9433953, InnoDB: which exceeds the log group capacity 9433498. InnoDB: If you are using big BLOB or TEXT rows, you must set the InnoDB: combined size of log files at least 10 times bigger than the InnoDB: largest such row.
下記ワーニングについては、
relay-log=mysqld-relay-bin
relay-log-index=mysqld-relay-bin
をmy.cnfに追記してやる必要がありそう
[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=mysqld-relay-bin' to avoid this problem.
下記ワーニングについては、
レプリケーション関連の設定はmy.cnfに記述するべきじゃないらしい
[Warning] The syntax for replication startup options is deprecated and will be removed in MySQL 5.2. Please use 'CHANGE MASTER' instead.