Description:
Setting a single database to read-only status may cause scheduled event tasks in other databases to fail.Even if the read-only attribute of a database that has already been set to read-only is removed, it still does not take effect.
How to repeat:
【1】 How to reproduce
create database test_1;
use test_1;
CREATE EVENT IF NOT EXISTS event_test_1
ON SCHEDULE EVERY 1 MINUTE
STARTS CURRENT_TIMESTAMP
DO select 1;
create database test_2;
use test_2;
CREATE EVENT IF NOT EXISTS event_test_1
ON SCHEDULE EVERY 1 MINUTE
STARTS CURRENT_TIMESTAMP
DO select 1;
select now();
select EVENT_NAME,EVENT_SCHEMA,INTERVAL_FIELD,STATUS,STARTS,CREATED,LAST_ALTERED,LAST_EXECUTED from information_schema.EVENTS;
【2】Execution result
mysql> select version();
+--------------+
| version() |
+--------------+
| 8.0.41-debug |
+--------------+
1 row in set (0.00 sec)
mysql> create database test_1;
Query OK, 1 row affected (0.01 sec)
mysql> use test_1;
Database changed
mysql> CREATE EVENT IF NOT EXISTS event_test_1
-> ON SCHEDULE EVERY 1 MINUTE
-> STARTS CURRENT_TIMESTAMP
-> DO select 1;
Query OK, 0 rows affected (0.01 sec)
mysql>
mysql> create database test_2;
Query OK, 1 row affected (0.01 sec)
mysql> use test_2;
Database changed
mysql> CREATE EVENT IF NOT EXISTS event_test_1
-> ON SCHEDULE EVERY 1 MINUTE
-> STARTS CURRENT_TIMESTAMP
-> DO select 1;
Query OK, 0 rows affected (0.01 sec)
mysql>
mysql> select now();
+---------------------+
| now() |
+---------------------+
| 2025-03-17 08:58:56 |
+---------------------+
1 row in set (0.00 sec)
mysql> select EVENT_NAME,EVENT_SCHEMA,INTERVAL_FIELD,STATUS,STARTS,CREATED,LAST_ALTERED,LAST_EXECUTED from information_schema.EVENTS;
+--------------+--------------+----------------+---------+---------------------+---------------------+---------------------+---------------------+
| EVENT_NAME | EVENT_SCHEMA | INTERVAL_FIELD | STATUS | STARTS | CREATED | LAST_ALTERED | LAST_EXECUTED |
+--------------+--------------+----------------+---------+---------------------+---------------------+---------------------+---------------------+
| event_test_1 | test_1 | MINUTE | ENABLED | 2025-03-17 08:58:56 | 2025-03-17 08:58:56 | 2025-03-17 08:58:56 | 2025-03-17 08:58:56 |
| event_test_1 | test_2 | MINUTE | ENABLED | 2025-03-17 08:58:56 | 2025-03-17 08:58:56 | 2025-03-17 08:58:56 | 2025-03-17 08:58:56 |
+--------------+--------------+----------------+---------+---------------------+---------------------+---------------------+---------------------+
2 rows in set (0.01 sec)
mysql> select now();
+---------------------+
| now() |
+---------------------+
| 2025-03-17 08:59:59 |
+---------------------+
1 row in set (0.00 sec)
mysql> select EVENT_NAME,EVENT_SCHEMA,INTERVAL_FIELD,STATUS,STARTS,CREATED,LAST_ALTERED,LAST_EXECUTED from information_schema.EVENTS;
+--------------+--------------+----------------+---------+---------------------+---------------------+---------------------+---------------------+
| EVENT_NAME | EVENT_SCHEMA | INTERVAL_FIELD | STATUS | STARTS | CREATED | LAST_ALTERED | LAST_EXECUTED |
+--------------+--------------+----------------+---------+---------------------+---------------------+---------------------+---------------------+
| event_test_1 | test_1 | MINUTE | ENABLED | 2025-03-17 08:58:56 | 2025-03-17 08:58:56 | 2025-03-17 08:58:56 | 2025-03-17 08:59:56 |
| event_test_1 | test_2 | MINUTE | ENABLED | 2025-03-17 08:58:56 | 2025-03-17 08:58:56 | 2025-03-17 08:58:56 | 2025-03-17 08:59:56 |
+--------------+--------------+----------------+---------+---------------------+---------------------+---------------------+---------------------+
2 rows in set (0.01 sec)
mysql> ALTER SCHEMA test_1 READ ONLY=1;
Query OK, 1 row affected (0.01 sec)
mysql> select now();
+---------------------+
| now() |
+---------------------+
| 2025-03-17 09:01:51 |
+---------------------+
1 row in set (0.00 sec)
mysql> select now();
+---------------------+
| now() |
+---------------------+
| 2025-03-17 09:03:49 |
+---------------------+
1 row in set (0.00 sec)
【Problem 1】The events in both databases are invalid.
mysql> select EVENT_NAME,EVENT_SCHEMA,INTERVAL_FIELD,STATUS,STARTS,CREATED,LAST_ALTERED,LAST_EXECUTED from information_schema.EVENTS;
+--------------+--------------+----------------+---------+---------------------+---------------------+---------------------+---------------------+
| EVENT_NAME | EVENT_SCHEMA | INTERVAL_FIELD | STATUS | STARTS | CREATED | LAST_ALTERED | LAST_EXECUTED |
+--------------+--------------+----------------+---------+---------------------+---------------------+---------------------+---------------------+
| event_test_1 | test_1 | MINUTE | ENABLED | 2025-03-17 08:58:56 | 2025-03-17 08:58:56 | 2025-03-17 08:58:56 | 2025-03-17 09:00:56 |
| event_test_1 | test_2 | MINUTE | ENABLED | 2025-03-17 08:58:56 | 2025-03-17 08:58:56 | 2025-03-17 08:58:56 | 2025-03-17 09:01:56 |
+--------------+--------------+----------------+---------+---------------------+---------------------+---------------------+---------------------+
2 rows in set (0.01 sec)
【Problem 2】Even if the read-only attribute of test_1 is removed, it still does not work.
mysql> ALTER SCHEMA test_1 READ ONLY=0;
Query OK, 1 row affected (0.01 sec)
mysql> select now();
+---------------------+
| now() |
+---------------------+
| 2025-03-17 09:06:01 |
+---------------------+
1 row in set (0.00 sec)
mysql> select EVENT_NAME,EVENT_SCHEMA,INTERVAL_FIELD,STATUS,STARTS,CREATED,LAST_ALTERED,LAST_EXECUTED from information_schema.EVENTS;
+--------------+--------------+----------------+---------+---------------------+---------------------+---------------------+---------------------+
| EVENT_NAME | EVENT_SCHEMA | INTERVAL_FIELD | STATUS | STARTS | CREATED | LAST_ALTERED | LAST_EXECUTED |
+--------------+--------------+----------------+---------+---------------------+---------------------+---------------------+---------------------+
| event_test_1 | test_1 | MINUTE | ENABLED | 2025-03-17 08:58:56 | 2025-03-17 08:58:56 | 2025-03-17 08:58:56 | 2025-03-17 09:00:56 |
| event_test_1 | test_2 | MINUTE | ENABLED | 2025-03-17 08:58:56 | 2025-03-17 08:58:56 | 2025-03-17 08:58:56 | 2025-03-17 09:01:56 |
+--------------+--------------+----------------+---------+---------------------+---------------------+---------------------+---------------------+
2 rows in set (0.00 sec)
Description: Setting a single database to read-only status may cause scheduled event tasks in other databases to fail.Even if the read-only attribute of a database that has already been set to read-only is removed, it still does not take effect. How to repeat: 【1】 How to reproduce create database test_1; use test_1; CREATE EVENT IF NOT EXISTS event_test_1 ON SCHEDULE EVERY 1 MINUTE STARTS CURRENT_TIMESTAMP DO select 1; create database test_2; use test_2; CREATE EVENT IF NOT EXISTS event_test_1 ON SCHEDULE EVERY 1 MINUTE STARTS CURRENT_TIMESTAMP DO select 1; select now(); select EVENT_NAME,EVENT_SCHEMA,INTERVAL_FIELD,STATUS,STARTS,CREATED,LAST_ALTERED,LAST_EXECUTED from information_schema.EVENTS; 【2】Execution result mysql> select version(); +--------------+ | version() | +--------------+ | 8.0.41-debug | +--------------+ 1 row in set (0.00 sec) mysql> create database test_1; Query OK, 1 row affected (0.01 sec) mysql> use test_1; Database changed mysql> CREATE EVENT IF NOT EXISTS event_test_1 -> ON SCHEDULE EVERY 1 MINUTE -> STARTS CURRENT_TIMESTAMP -> DO select 1; Query OK, 0 rows affected (0.01 sec) mysql> mysql> create database test_2; Query OK, 1 row affected (0.01 sec) mysql> use test_2; Database changed mysql> CREATE EVENT IF NOT EXISTS event_test_1 -> ON SCHEDULE EVERY 1 MINUTE -> STARTS CURRENT_TIMESTAMP -> DO select 1; Query OK, 0 rows affected (0.01 sec) mysql> mysql> select now(); +---------------------+ | now() | +---------------------+ | 2025-03-17 08:58:56 | +---------------------+ 1 row in set (0.00 sec) mysql> select EVENT_NAME,EVENT_SCHEMA,INTERVAL_FIELD,STATUS,STARTS,CREATED,LAST_ALTERED,LAST_EXECUTED from information_schema.EVENTS; +--------------+--------------+----------------+---------+---------------------+---------------------+---------------------+---------------------+ | EVENT_NAME | EVENT_SCHEMA | INTERVAL_FIELD | STATUS | STARTS | CREATED | LAST_ALTERED | LAST_EXECUTED | +--------------+--------------+----------------+---------+---------------------+---------------------+---------------------+---------------------+ | event_test_1 | test_1 | MINUTE | ENABLED | 2025-03-17 08:58:56 | 2025-03-17 08:58:56 | 2025-03-17 08:58:56 | 2025-03-17 08:58:56 | | event_test_1 | test_2 | MINUTE | ENABLED | 2025-03-17 08:58:56 | 2025-03-17 08:58:56 | 2025-03-17 08:58:56 | 2025-03-17 08:58:56 | +--------------+--------------+----------------+---------+---------------------+---------------------+---------------------+---------------------+ 2 rows in set (0.01 sec) mysql> select now(); +---------------------+ | now() | +---------------------+ | 2025-03-17 08:59:59 | +---------------------+ 1 row in set (0.00 sec) mysql> select EVENT_NAME,EVENT_SCHEMA,INTERVAL_FIELD,STATUS,STARTS,CREATED,LAST_ALTERED,LAST_EXECUTED from information_schema.EVENTS; +--------------+--------------+----------------+---------+---------------------+---------------------+---------------------+---------------------+ | EVENT_NAME | EVENT_SCHEMA | INTERVAL_FIELD | STATUS | STARTS | CREATED | LAST_ALTERED | LAST_EXECUTED | +--------------+--------------+----------------+---------+---------------------+---------------------+---------------------+---------------------+ | event_test_1 | test_1 | MINUTE | ENABLED | 2025-03-17 08:58:56 | 2025-03-17 08:58:56 | 2025-03-17 08:58:56 | 2025-03-17 08:59:56 | | event_test_1 | test_2 | MINUTE | ENABLED | 2025-03-17 08:58:56 | 2025-03-17 08:58:56 | 2025-03-17 08:58:56 | 2025-03-17 08:59:56 | +--------------+--------------+----------------+---------+---------------------+---------------------+---------------------+---------------------+ 2 rows in set (0.01 sec) mysql> ALTER SCHEMA test_1 READ ONLY=1; Query OK, 1 row affected (0.01 sec) mysql> select now(); +---------------------+ | now() | +---------------------+ | 2025-03-17 09:01:51 | +---------------------+ 1 row in set (0.00 sec) mysql> select now(); +---------------------+ | now() | +---------------------+ | 2025-03-17 09:03:49 | +---------------------+ 1 row in set (0.00 sec) 【Problem 1】The events in both databases are invalid. mysql> select EVENT_NAME,EVENT_SCHEMA,INTERVAL_FIELD,STATUS,STARTS,CREATED,LAST_ALTERED,LAST_EXECUTED from information_schema.EVENTS; +--------------+--------------+----------------+---------+---------------------+---------------------+---------------------+---------------------+ | EVENT_NAME | EVENT_SCHEMA | INTERVAL_FIELD | STATUS | STARTS | CREATED | LAST_ALTERED | LAST_EXECUTED | +--------------+--------------+----------------+---------+---------------------+---------------------+---------------------+---------------------+ | event_test_1 | test_1 | MINUTE | ENABLED | 2025-03-17 08:58:56 | 2025-03-17 08:58:56 | 2025-03-17 08:58:56 | 2025-03-17 09:00:56 | | event_test_1 | test_2 | MINUTE | ENABLED | 2025-03-17 08:58:56 | 2025-03-17 08:58:56 | 2025-03-17 08:58:56 | 2025-03-17 09:01:56 | +--------------+--------------+----------------+---------+---------------------+---------------------+---------------------+---------------------+ 2 rows in set (0.01 sec) 【Problem 2】Even if the read-only attribute of test_1 is removed, it still does not work. mysql> ALTER SCHEMA test_1 READ ONLY=0; Query OK, 1 row affected (0.01 sec) mysql> select now(); +---------------------+ | now() | +---------------------+ | 2025-03-17 09:06:01 | +---------------------+ 1 row in set (0.00 sec) mysql> select EVENT_NAME,EVENT_SCHEMA,INTERVAL_FIELD,STATUS,STARTS,CREATED,LAST_ALTERED,LAST_EXECUTED from information_schema.EVENTS; +--------------+--------------+----------------+---------+---------------------+---------------------+---------------------+---------------------+ | EVENT_NAME | EVENT_SCHEMA | INTERVAL_FIELD | STATUS | STARTS | CREATED | LAST_ALTERED | LAST_EXECUTED | +--------------+--------------+----------------+---------+---------------------+---------------------+---------------------+---------------------+ | event_test_1 | test_1 | MINUTE | ENABLED | 2025-03-17 08:58:56 | 2025-03-17 08:58:56 | 2025-03-17 08:58:56 | 2025-03-17 09:00:56 | | event_test_1 | test_2 | MINUTE | ENABLED | 2025-03-17 08:58:56 | 2025-03-17 08:58:56 | 2025-03-17 08:58:56 | 2025-03-17 09:01:56 | +--------------+--------------+----------------+---------+---------------------+---------------------+---------------------+---------------------+ 2 rows in set (0.00 sec)