Community
    • Categories
    • Recent
    • Popular
    • Users
    • Search
    • Register
    • Login
    1. Home
    2. SMO
    Offline
    • Profile
    • Following 0
    • Followers 0
    • Topics 1
    • Posts 2
    • Groups 0

    SMO

    @SMO

    0
    Reputation
    216
    Profile views
    2
    Posts
    0
    Followers
    0
    Following
    Joined
    Last Online

    SMO Unfollow Follow

    Latest posts made by SMO

    • RE: Create temporary Table ENGINE ändern

      @bheisig said in Create temporary Table ENGINE ändern:

      Ein möglicher Workaround wäre, die Einstellung "enforce_gtid_consistency" auf "Off" oder "Warn" zu setzen. Das allerdings ohne Gewähr unsererseits. Klappt's?

      Hallo Benjamin,

      danke das Du nachgefragt hast. Da wir aber die GTID basierte Replikation verwenden, ist das leider keine Option. Siehe offizielle MySQL Doku: https://dev.mysql.com/doc/refman/5.7/en/replication-options-gtids.html
      dort steht:

      When enabled, the server enforces GTID consistency by allowing execution of only statements that can be safely logged using a GTID. You must set this option to ON before enabling GTID based replication.

      posted in Entwicklung
      SMOS
      SMO
    • Create temporary Table ENGINE ändern

      Hallo zusammen,

      produktiv setzen wir i-doit Pro ein. Zum testen habe ich mir Docker-Images mit i-doit Open erstellt. Das nur nebenbei.

      Aktuell bereite ich den Umzug der i-doit DB auf eine neue MySQL DB vor. Auf dieser neuen MySQL DB setzen wir die neue GTID (General Transaktion ID) Replikation ein (https://dev.mysql.com/doc/refman/5.7/en/replication-gtids.html). Aus diesem Grund ist die Storage Engine MyISAM deaktiviert.

      Das hat zur Folge, das CREATE TEMPORARY TABLE Statements fehlschlagen, weil bei diesen explizit ENGINE=MyISAM angegeben ist. Z.B. wenn man sich einen Server in der CMDB anzeigen lässt.
      Fehlermeldung:

      Database error : Query error: 'CREATE TEMPORARY TABLE tempObjList_05ad75a0e6960bb978e617801ecb5b68 (`isys_catg_access_list__title` TEXT,`isys_access_type__title` TEXT,`isys_catg_access_list__url` TEXT,`isys_catg_access_list__primary` TEXT,`isys_catg_access_list__id` INT(10),`isys_id` TEXT) ENGINE=MyISAM;': Statement violates GTID consistency: CREATE TEMPORARY TABLE and DROP TEMPORARY TABLE can only be executed outside transactional context. These statements are also not allowed in a function or trigger because functions and triggers are also considered to be multi-statement transactions.
      

      Müssen diese Temporary Tables unbedingt auf der Platte gespeichert werden? Können diese nicht mit ENGINE=MEMORY angelegt werden? Falls Temp Tables unbedingt manifestiert werden müssen, kann man die MySQL Storage Engine dafür konfigurieren?
      BTW: in MySQL ist internal_tmp_disk_storage_engine per Default auf InnoDB gesetzt.

      posted in Entwicklung mysql temporary table myisam
      SMOS
      SMO