まとまりのないブログ

something which something is something

mysql

mysqlのレプリケーションでのエラー

投稿日:

[ERROR] Slave: Error ‘You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘sql’ at line 1′ on query. Default database: ‘auc’. Query: ‘sql’, Error_code: 1064
090327 10:51:03 [ERROR] Error running query, slave SQL thread aborted. Fix the problem, and restart the slave SQL thread with “SLAVE START”. We stopped at log ‘mysql-bin.000006’ position 79696519

おかしい。マスターでは問題ないのに、レプリケーションしているスレーブでエラーが発生している。エラーメッセージを見る限りではsqlのシンタックスエラーが起こっているということになっている。仮に、本当にsqlシンタックスエラーがあるのならば、マスターでそれは感知しないといけないことだけれど、それがないということはレプリケーションが取得するマスターのログに問題がありそうな気配が濃厚になってくる。もう一度マスターのレプリケーションの設定を見直す必要があるかもしれない。

とりあえずの対処法は、このエラーが発生した箇所をスキップする。

mysql> set global sql_slave_skip_counter = 1;
Query OK, 0 rows affected (0.00 sec)
mysql> start slave;

sql_slave_skip_counterに1を入れることで現在止まっているエラー箇所を飛ばす、ということになるのかな。start slaveでまたスレーブ動作を開始する。

その後

もう少し調べ見ると、マスターで作られたログファイルと、スレーブが取得したログファイルの内容が微妙に違っているということが判明した。問題が起こっているのはスレーブがマスターから取得してきたはずのログファイルで、どういうわけかsqlのシンタックスエラーがところどころ発生するような形でリレーログを作成している。

-mysql

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

関連記事

no image

インデックス列には日本語よりも英数字を使うほうが良いのか悪いのか

テーブル内に存在するレコード数をカウントする時、where句にインデックス列を条件として指定して実行時間がどれほどかかるかテストをしてみた。テーブルの全レコード数は約1600万レコードで、カウントすべ …

no image

mroongaよりsennaの方が検索速度が速い場合がある

DBのレコード件数1800~2000万件程度のテーブルで全文検索した場合に、mroongaを使って検索した時にやたら時間がかかった。大体3秒~10秒ほどselect count(*)を実行するのにかか …

no image

UbuntuのMySQLの起動と停止

UbuntuにMySQLをソースから/usr/local/mysqlにインストールした場合。

no image

myisamchk: error: myisam_sort_buffer_size is too small

myisamchkを実行したときに myisamchk: error: myisam_sort_buffer_size is too small Try fixing it by using the …

no image

マシンスペックとデータベースのパフォーマンスの関係

マシンが高性能であればあるほど良いに越したことはないが、データベースソフトウェアのパフォーマンスにおいてはマシンの高性能化はあまり意味があるとはいえない。データベースのパフォーマンスを向上させるために …