AWS Aurora: The MySQL server is running with the --read-only option so it cannot execute this statement

sashoalm picture sashoalm · Oct 10, 2017 · Viewed 18.5k times · Source

I am getting this error when executing a GRANT statement on my Aurora DB instance in AWS:

The MySQL server is running with the --read-only option so it cannot execute this statement

My user is not read-only though, so why is this happening?

Answer

sashoalm picture sashoalm · Oct 10, 2017

It turned out to be a silly mistake, but posting it anyway in case anyone else has the problem:

I was accessing the replica instance by mistake - I had copied the endpoint for the replica, and it is read-only apparently. So if you have this problem, verify that you are connecting to the Primary Instance or best of all the DB Cluster endpoint.

Edit: According to @Justin's answer we definitely should use DB Cluster:

You need to connect to the cluster, rather than an instance. This is because instances seem to take a turn to be the readers and writers.