Help Center/ Relational Database Service/ User Guide (Ally Region)/ Working with RDS for MySQL/ Database Proxy (Read/Write Splitting)/ Constraints on Database Proxy
Updated on 2026-04-24 GMT+08:00
Constraints on Database Proxy
Supported Versions
- MySQL 5.6: 5.6.51.7 or later
- MySQL 5.7: 5.7.37.2 or later
- MySQL 8.0: all minor versions
If your kernel version is not supported, upgrade the minor version.
Function Constraints
- One RDS for MySQL read replica can connect to different proxies. However, you are advised to configure only one proxy that can allocate requests to the read replica.
- rdsProxy is an internal database proxy account of RDS. To ensure that Database Proxy works properly, do not create an account with the same name as rdsProxy.
- Deleting a primary RDS for MySQL instance that has Database Proxy enabled will remove its read replicas and disable Database Proxy.
- Read/write splitting does not support the caching_sha2_password identity authentication plugin for RDS for MySQL 8.0.
- After Database Proxy is enabled, the ports and floating IP addresses of the primary instance and read replicas cannot be changed.
- Database Proxy does not support compression protocols.
- Read/write splitting does not support the isolation level READ UNCOMMITTED.
- If operations for explicitly creating a temporary table are performed, all subsequent requests over the current connection will be routed to the primary instance by default. To restore read/write splitting, disconnect the connection and reestablish another one.
- If the HANDLER statement is executed, all subsequent requests will be routed to the primary instance by default. To restore read/write splitting, disconnect the connection and reestablish another one.
- When the read/write splitting address is used, all transaction requests are routed to the primary instance (you can use the transaction splitting feature to route read requests prior to write operations in a transaction to read replicas). The non-transaction read consistency is not ensured. To ensure read consistency, encapsulate the read requests into a transaction.
- When the read/write splitting address is used, the LAST_INSERT_ID() function can be used only in transactions.
- When user-defined variables are used, statements containing user-defined variables are routed to the primary instance.
- To prevent excessive resource usage by a proxy, no more than 100 SQL statements can be committed and executed in a batch and the size of any concatenate SQL statement cannot exceed 100 MB.
- When a .NET client is used to connect to database proxies, the MySQL.Data driver version of the client must be 8.0.19 or later because earlier versions may be incompatible with database proxies.
- To use transaction splitting, you need to upgrade the database proxy to the latest version.
Syntax Constraints
Read/write splitting randomly routes frontend requests to backend instance nodes by the configured weights.
Therefore, some SQL statements may have different results when being executed multiple times.
- If you connect to a DB instance through a proxy and run show processlist, the result returned displays only the running threads on the proxy node where show processlist is executed, so it is different from that returned when you directly connect to the DB instance.
- If a proxy node is abnormal, and you connect to the proxy through the read/write splitting address and run show processlist or kill, the command execution may be prolonged or freeze, but your services are not affected.
- If you run show processlist on a proxy and this proxy has a node deleted, the running threads on this node may be returned.
- If you run kill on a proxy, errors such as timeout may be reported. In this case, you can run show processlist again to check whether the thread is killed successfully.
- Requests that are routed by a database proxy can be killed only by running kill on the proxy.
- With a read/write splitting address used, the show errors and show warnings commands are not supported.
- With a read/write splitting address used, if stored procedures and functions depend on user variables (@variable), the execution results may be incorrect.
Parent topic: Database Proxy (Read/Write Splitting)
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
The system is busy. Please try again later.
For any further questions, feel free to contact us through the chatbot.
Chatbot