-
以下描述了只读语句
-
如果语句以以下开头,则它们是只读的
-
如果它们以以上任何一个开头,并且不包含必须在读写服务器上执行的函数或关键字。例如
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 语句、复制语句 和 其他管理语句.