レプリケーションしているサーバで時々エラーが発生してスレーブ動作が止まる。よくあることと思いsql_skip_slave_counterに1を代入してエラーが発生する度に飛ばしていたのだけれど、詳しくエラーの内容を確認してみるとERROR 1064、sqlのシンタックスエラーが発生しているということだった。そしてさらに詳しく見てみると、それはsqlのシングルクォートのエスケープ処理ができていないことによる文法エラーということがわかった。マスターでプログラムの処理においてDBに登録する際にはエスケープ処理は行っているが、マスターに登録済みのデータはエスケープ処理後のデータであり、それをスレーブへレプリケーションするときにはもういちどエスケープ処理が必要ということになる。スレーブの設定でそういうのはあるのだろうか・・・・。
mysqlのレプリケーションでのエラー:ERROR 1064
投稿日:
執筆者:nakahira