MySQL Workbench, beginnen Sie mit dem automatischen Festschreiben

20643
Denis Sadowski

Ich verwende MySQL Workbench 5.2 und immer wenn ich eine Verbindung zu einer automatischen Datenbankfestschreibung herstelle, wird die Option aktiviert.

Gibt es eine Möglichkeit, das Standardverhalten so ändern zu lassen, dass die automatische Festschreibung deaktiviert wird. Ich bin vergesslich und möchte kein problematisches Commit-Update verursachen, nur weil ich vergessen habe, es manuell auszuschalten.

6
Meine Antwort wurde aktualisiert. Neustart erforderlich :( RolandoMySQLDBA vor 13 Jahren 0
Haben Sie mysql nach dem Hinzufügen von autocommit = 0 zu my.ini neu gestartet? RolandoMySQLDBA vor 13 Jahren 0
Ich habe mysql neu gestartet, und danach schien es nicht zu helfen, dass ich die gesamte Maschine neu gestartet habe. Denis Sadowski vor 13 Jahren 0
Meine Antwort in Bezug auf MySQL Workbench aktualisiert. RolandoMySQLDBA vor 13 Jahren 0

4 Antworten auf die Frage

4
RolandoMySQLDBA

Fügen Sie dies zu /etc/my.cnf (Linux) oder my.ini (Windows) hinzu

[mysqld] autocommit=0 

Neustart von MySQL erforderlich !!! :(

UPDATE 2011-08-03 12:18 EDT

In MySQL Workbench müssen Sie sicherstellen, dass der Assistent für Datenänderungen aktiviert ist. Hier ist warum:

Assistent zum Aktivieren von Datenänderungen aktivieren - Wenn Sie im SQL-Editor Tabellendaten bearbeiten und dann auf die Schaltfläche Änderungen auf Daten anwenden klicken, wird ein Assistent gestartet, der Sie durch das Anwenden Ihrer Änderungen führt. Dadurch haben Sie die Möglichkeit, die auf den Live-Server angewendete SQL zu überprüfen, um die angeforderten Änderungen vorzunehmen. Wenn die Option nicht ausgewählt ist, werden die Änderungen einfach auf den Server angewendet, ohne dass der Assistent angezeigt wird und keine Möglichkeit besteht, die vorgenommenen Änderungen zu überprüfen.

So überprüfen Sie Folgendes:

  • Öffnen Sie MySQL Workbench
  • Klicken Sie in der Hauptmenüleiste auf Bearbeiten
  • Klicken Sie unter Bearbeiten auf Einstellungen
  • Klicken Sie auf die Registerkarte SQL-Editor
  • Suchen Sie unter Abfrageergebnisse nach dem letzten Kontrollkästchen

Wenn dies aktiviert ist, werden die Daten über einen Assistenten festgeschrieben, der einen Benutzereingriff erfordert.

Wenn das Kontrollkästchen nicht aktiviert ist, werden Daten festgeschrieben, wobei die Autocommit-Protokolle von MySQL umgangen werden.

Ich habe versucht, SET GLOBAL autocommit = 0 und SET GLOBAL autocommit = 'OFF' innerhalb von MySQL Workbench auszuführen, nachdem ich eine Verbindung zu einer Datenbank hergestellt hatte. Ich habe folgende Fehlermeldung erhalten: Fehlercode: 1228. Variable 'autocommit' ist eine SESSION-Variable und kann nicht mit SET GLOBAL verwendet werden Denis Sadowski vor 13 Jahren 0
Ich habe einen Neustart versucht, und wenn ich "select @@ autocommit" starte, ist es immer noch auf 1 gesetzt. Ich habe die Datei my.ini unter C: /, C: / Windows und die Verzeichnisse der Workbench-Programmdateien abgelegt, und keiner von ihnen hat geholfen . :( Denis Sadowski vor 13 Jahren 0
`autocommit = 0` funktioniert nicht` init_connect = "SET AUTOCOMMIT = 0" `` was die docs empfehlen, funktioniert auch nicht Noah Yetter vor 13 Jahren 0
Das ist einfach falsch. Erstens ist der Assistent eine separate "Schutzschicht". Wenn Sie einen Vorgang im Assistenten abbrechen, wird die SQL-Anweisung überhaupt nicht ausgeführt (und dann gibt es nichts zu übergeben). Wenn sie jedoch genehmigt wird, wird sie ausgeführt. Nach der Ausführung (ob mit dem Assistenten oder nicht) bestimmt der Parameter "Autocommit", ob ein Auto-Commit ausgeführt wird oder nicht. Zweitens ... (nächster Kommentar) Eyal Roth vor 9 Jahren 0
Zweitens: Wenn der Client (irgendein Client) den Parameter "Autocommit" nicht überschreibt, wird er von dem in der Datenbank definierten globalen Parameter bestimmt (in MySQL ist der Standardwert TRUE). Es ist möglich, dass der Client den Parameter in jeder Sitzung überschreibt (indem er einen SQL-Befehl ausführt) oder das Standardverhalten des Clients ändern. Die Methode in der Antwort wird nicht funktionieren. Ich werde eine korrekte Antwort hinzufügen. Eyal Roth vor 9 Jahren 0
1
Vijay

Try SET SESSION autocommit = 0; This switch the autocommit flag to OFF in that session.

It worked for me.

1
philip

Ab MySQL Workbench 6.0.0 können Sie die Einstellung "Automatischen Commit-Modus standardmäßig aktiviert lassen" festlegen. Legen Sie es unter Voreinstellungen -> SQL-Abfragen -> Allgemein fest.

1
Eyal Roth

I'll start by mentioning my own question posted on stack-overflow about a year ago, and it's somewhat of the same question: How can I set client configuration for MySQL Workbench without an installed server?

As already mentioned in an answer here, as of MySQL WB 6 you can set the "leave autocommit mode enabled by default" preference in Preferences > SQL Queries > General.

For earlier versions it might be possible to configure the "my.ini" file.
Why only "possibly"? Because it worked for me before (WB 5?), but doesn't work now on WB 6.3.

First, we need to find out where does WB is looking for the file. There are several questions on that subject, so you might have to fiddle with it a little (frankly, it's a messy issue).
The best way, if available, is to go to the Server menu and then press "Options File". It will either tell you that the file doesn't exist (and will tell you the path it's looking for), or it will open the configuration and will specify the path at the bottom.

Now, we need to add the following line into the "my.ini" file, under the [client] section (add it as well if it doesn't exist):

init-command="SET autocommit=0"