-
以下描述只读语句
-
如果语句以以下内容开头,则为只读语句
-
如果它们以以上任何一项开头,并且不包含必须在读写服务器上执行的函数或关键字。比如
GET_LOCK()FOR UPDATE|SHARELOCK IN SHARE MODE
-
某些函数可能会在只读语句中产生写入操作。此类语句会失败并显示类似于以下内容的错误
The MySQL server is running with the --super-read-only option so it cannot execute this statement.可以使用
ROUTER SET或query_attributes将此类语句显式路由到读写服务器。请参阅每个会话的配置。您也可以将语句包装在START TRANSACTION ... COMMIT中。
-
-
以下描述读写语句
以下 DML:
CALL、INSERT、UPDATE、DELETE、REPLACE、IMPORT TABLE、LOAD DATA、LOAD XML、WITH...UPDATE/DELETE。以下帐户管理语句:
GRANT、REVOKE、RENAME USER、CREATE ROLE、CREATE USER、DROP ROLE、DROP USER、SET PASSWORD、SET ROLE、SET DEFAULT ROLE。以下事务和锁定语句:
BEGIN、START TRANSACTION、XA、SAVEPOINT、ROLLBACK、COMMIT。以下数据库管理语句:
SHOW CREATE...、SHOW VARIABLES、SHOW STATUS、SET TRANSACTION(包括SET SESSION ...)、SET NAMES、SET CHARACTER SET、FLUSH PRIVILEGES。以下表维护语句:
ANALYZE TABLE、OPTIMIZE TABLE、CHECK TABLE、REPAIR TABLE。
-
如果
access_mode=auto,则不支持以下语句任何不是只读或读写的语句。这包括ALTER RESOURCE GROUP 语句、复制语句和其他管理语句。