GA

2018/11/01

ER_OPTION_PREVENTS_STATEMENT(Error: 1290) The MySQL server is running with the .. について

$ perror 1290
MySQL error code MY-001290 (ER_OPTION_PREVENTS_STATEMENT): The MySQL server is running with the %s option so it cannot execute this statement
要は、「 %s だからそのSQLは実行できないよ」というエラー。
%s の部分に何が入るかは何パターンかあるけど、基本的にオプションの名前が入るので、SQLを成功させたければ %s をOFFにしてやれば上手くいくはず。

MySQL 5.7.24 のコードから ER_OPTION_PREVENTS_STATEMENT を投げるところを引いてみた感じ、あり得る %s のパターンはたぶんこう。

おそらくここまでがよくあるやつら。
ここからはコードをさらって見つけた変なやつら。
  • “—event-scheduler=DISABLED or —skip-grant-tables”
    • これ全部で1区切り
    • 実は event_schedulerON, OFF, DISABLED の3通りを取ることができて、 DISABLED で起動すると SET GLOBAL でONにできなくなる(それをやろうとするとこれが出る)
    • skip_grant_tables でもイベントスケジューラーいじれないのね(知らなかった)
  • embedded
    • 組み込み用mysqldである libmysqld を使っている場合に行ベースのバイナリーログイベント( mysqlbinlog でデコードしたものを含む)を食わせると発生
    • 初めて知った…
あー面白かった。

0 件のコメント :

コメントを投稿