I have a MySQL ecosystem of a Master and a number of slaves, with an ip address that can be brought up on the master or any of the slaves for High Availability.
To reduce problems with re-syncing the master from a slave if a failover is needed (failover=the ip address is brought up on a slave after the master crashes), all the MySQL slaves are marked as read-only in their configuration and only after determining that the master MySQL server will be down for an extended period of time, will a slave be brought up read-write and made the new master until the primary master is fixed.
MediaWiki does not operate on a read-only slave, and this is an enhancement request to allow MediaWiki to operate in a read-only MySQL environment. Currently errors are thrown (usually couldn't update the objectcache), although some pages do occasionally load).
The error thrown is 1290, and if this could be caught and recognised as a MySQL read-only server error, MediaWiki could simply throw away any write queries and make only read queries against the server. Of course, each new page load would represent a new attempt at writing, since at any time the MySQL server could be brought up read-write or failed back to the master server.
The error displayed is as follows for one attempt at a page load:
A database query syntax error has occurred. This may indicate a bug in the software. The last attempted database query was:
DELETE FROM `objectcache` WHERE keyname='wiki_staging:pcache:idhash:19674-0!1!0!!en!2'
from within function "MediaWikiBagOStuff::_doquery". MySQL returned error "1290: The MySQL server is running with the --read-only option so it cannot execute this statement (mysql-server-name)".