Error number: 3091; Symbol: ER_CANNOT_LOG_PARTIAL_DROP_DATABASE_WITH_GTID; SQLSTATE: HY000
Message: DROP DATABASE failed; some tables may have been dropped but the database directory remains. The GTID has not been added to GTID_EXECUTED and the statement was not written to the binary log. Fix this as follows: (1) remove all files from the database directory %s; (2) SET GTID_NEXT=’%s’; (3) DROP DATABASE `%s`.
Error Number 3091: ER_CANNOT_LOG_PARTIAL_DROP_DATABASE_WITH_GTID
Error Description:
MySQL Error Number 3091 occurs when a user attempts to log a partial drop of a database with Global Transaction Identifier (GTID) mode enabled. This is an illegal operation within the GTID mode.
Common Cases:
A common case in which Error 3091 occurs is when a database administrator wishes to log a partial drop of a database, i.e., only dropping some of the database tables, but still wishes to keep a log of the operation to track database changes. This is especially useful for database auditing, ensuring database security, and database version control. However, the GTID mode prevents these operations from being logged.
Solution:
The solution to Error 3091 is to either disable the GTID mode or else choose a database operation that can be logged properly. If a partial database drop must occur and be logged, then the GTID mode must be disabled. This can be done through the SET GTID_MODE = OFF query, which can be found in the official MySQL website. Otherwise, the database administrator may choose to log the operation without a partial database drop. This means that the entire database will be dropped and logged, instead of only a portion of it.