Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-14056

DROP TEMPORARY TABLE IF EXISTS causes error 1290 with read_only option

    XMLWordPrintable

Details

    • Bug
    • Status: Closed (View Workflow)
    • Critical
    • Resolution: Fixed
    • 5.5, 10.0, 10.1, 10.1.28, 10.2
    • 5.5.58, 10.0.33, 10.1.29, 10.2.10
    • Server
    • None
    • CentOS 6

    Description

      I have a replicated slave with "read_only=1" set in my.cnf

      I have a user set up as follows:

      CREATE USER 'slave_user'@'localhost' IDENTIFIED BY 'slave_pswd';
      GRANT ALL ON mydb.* TO 'slave_user'@'localhost' WITH GRANT OPTION;
      

      If I log in as 'slave_user', I can create a temporary table, write to it, and then drop it successfully:

      CREATE TEMPORARY TABLE temp_x (id integer);
      INSERT INTO temp_x values (1);
      DROP TEMPORARY TABLE IF EXISTS temp_x;
      

      However, if I have not created a temporary table, and I start with:

      DROP TEMPORARY TABLE IF EXISTS temp_x;
      

      I get the error: ERROR 1290 (HY000): The MariaDB server is running with the --read-only option so it cannot execute this statement

      I have countless lines of application code which always checks to make sure a temporary table is dropped before creating it to avoid an "already exists" error. Always worked on MySQL 5.6 and lower, on the exact same slave database with read_only. After upgrading to MariaDB 10.1, this problem emerged.

      Attachments

        Activity

          People

            serg Sergei Golubchik
            markalanpeter Mark Peter
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Git Integration

                Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.