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