Auroraで1290, ‘The MySQL server is running with the –read-only option

今回はAWSのAuroraを利用しているときに「django.db.utils.OperationalError: (1290, ‘The MySQL server is running with the –read-only option so it cannot execute this statement’)」というエラーが起きてしまったときの対処法についてご紹介いたします。



Auroraで1290, ‘The MySQL server is running with the –read-only option

Django+AuroraのMySQL5.7でインフラの構築を行っていたときのことです。
上記のような「django.db.utils.OperationalError: (1290, ‘The MySQL server is running with the –read-only option so it cannot execute this statement’)」というエラーが出てDBのやりとりがうまくいきませんでした。

結論を言うと、エンドポイントをミスっていたことが原因でした。

Auroraのエンドポイントには次の種類があります。
・クラスターエンドポイント
・読み取りエンドポイント
・カスタムエンドポイント

このうち、「読み取りエンドポイント」でDBの書き込みを行うと上記のようなエラーが出てしまいます。
私はAuroraを触るのは初めてでよく分からず、Auroraを設定する画面に「書き込み」と「読み込み」があったので、これを合わせなければ書き込みと読み込みの両方ができるエンドポイントができないと思って「クラスターエンドポイント」と「読み取りエンドポイント」をまとめて「カスタムエンドポイント」を作成して接続したところ、ものの見事に上記のエラーが出てしまいました。
どうやら「書き込み」と書かれていたのがクラスターエンドポイントであり、クラスターエンドポイントさえ指定すれば読み書きができるようです。

クラスターエンドポイントは種類に「書き込み」と書かれているものです。
クラスターエンドポイントをDjangoのDATABASESに設定したところうまくいきました。

終わりに

今回はAWSのAuroraを利用しているときに「django.db.utils.OperationalError: (1290, ‘The MySQL server is running with the –read-only option so it cannot execute this statement’)」というエラーが起きてしまったときの対処法についてご紹介いたしました。

最後までお読みいただきありがとうございます。
ブログやTwitterでのシェアOKです。
コメントもお待ちしております。
誤植や勘違いなどございましたらコメント欄にて教えていただけると幸いです。






RDS

Posted by ちこ