it-swarm.com.de

Wie kann man den strikten MySQL-Modus in localhost (xampp) aktivieren/deaktivieren?

Ich möchte wissen, wie man prüft, ob der strikte MySQL-Modus in localhost (xampp) aktiviert oder deaktiviert ist.

Wenn an, für welche Modi und wie aus.

Wenn aus, dann wie einschalten.

Ich habe bereits http://dev.mysql.com/doc/refman/5.7/de/sql-mode.html#sql-mode-full und https://mariadb.com/kb/de gefolgt/mariadb/sql_mode/ und andere verwandte Seiten. Ich habe jedoch keine genaue Antwort auf meine Frage erhalten.

27
Ipsita Rout

-> STRICT_TRANS_TABLES ist für die Einstellung des strengen MySQL-Modus verantwortlich.

-> zur Überprüfung, ob der Strict-Modus aktiviert ist oder nicht, führt die folgende SQL-Anweisung aus:

SHOW VARIABLES LIKE 'sql_mode';

Wenn einer der Werte STRICT_TRANS_TABLES ist, ist der strikte Modus aktiviert, ansonsten nicht . In meinem Fall gab es den Wert an

+--------------+------------------------------------------+ 
|Variable_name |Value                                     |
+--------------+------------------------------------------+
|sql_mode      |STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION|
+--------------+------------------------------------------+

Daher ist der strikte Modus in meinem Fall aktiviert, da einer der Werte STRICT_TRANS_TABLES ist.

-> Zum Deaktivieren strict-Modus führen Sie die folgende SQL aus:

set global sql_mode='';

[oder jeder Modus außer STRICT_TRANS_TABLES. Beispiel: set global sql_mode = 'NO_ENGINE_SUBSTITUTION';]

-> Um den enable strict-Modus erneut auszuführen, führen Sie das folgende SQL aus:

set global sql_mode='STRICT_TRANS_TABLES';
57
Ipsita Rout

Um es dauerhaft in Ubuntu zu ändern, gehen Sie wie folgt vor

in der Ubuntu-Befehlszeile

Sudo nano /etc/mysql/my.cnf

Dann füge folgendes hinzu

[mysqld]
sql_mode=
32
DragonFire

Prüfen Sie zunächst, ob der strikte Modus in mysql aktiviert ist oder nicht.

     SHOW VARIABLES LIKE 'sql_mode';

Wenn Sie es deaktivieren möchten:

     SET sql_mode = '';

oder jeder andere Modus kann eingestellt werden, mit Ausnahme des folgenden ..__ Um den strikten Modus zu aktivieren:

     SET sql_mode = 'STRICT_TRANS_TABLES';

Sie können das Ergebnis von der ersten mysql-Abfrage aus überprüfen.

6

Überprüfen Sie den Wert mit 

SELECT @@GLOBAL.sql_mode;

entfernen Sie anschließend den Befehl 'STRICT_TRANS_TABLES' mit folgendem Befehl aus dem Wert:

SET @@GLOBAL.sql_mode=''
1
Toundrake

Sie können den lokalen und globalen Wert davon überprüfen:

SELECT @@SQL_MODE, @@GLOBAL.SQL_MODE;
1
Eric Korolev

Um sie dauerhaft in Windows (10) zu ändern, bearbeiten Sie die my.ini-Datei. Um die Datei my.ini zu finden, sehen Sie sich den Pfad auf dem Windows-Server an. Z.B. Für meine MySQL 5.7-Instanz lautet der Dienst MYSQL57. In den Eigenschaften dieses Dienstes lautet der Pfad zur ausführbaren Datei: 

"C:\Programme\MySQL\MySQL Server 5.7\bin\mysqld.exe" --defaults-file = "C:\ProgramData\MySQL\MySQL Server 5.7\my.ini" MySQL57

Das heißt Bearbeiten Sie die my.ini-Datei in C:\ProgramData\MySQL\MySQL Server 5.7\. Beachten Sie, dass C:\ProgramData\ ein versteckter Ordner in Windows (10) ist. Meine Datei enthält folgende Zeilen:

# Set the SQL mode to strict
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

Entfernen Sie STRICT_TRANS_TABLES, aus dieser SQL-Modus-Zeile, speichern Sie die Datei und starten Sie den MYSQL57-Dienst neu. Überprüfen Sie das Ergebnis, indem Sie SHOW VARIABLES LIKE 'sql_mode'; in einem (neuen) MySQL Command Line Client-Fenster ausführen.

(Ich fand die anderen Antworten und Dokumente im Web nützlich, aber Sie scheinen Ihnen nicht zu sagen, wo Sie die my.ini-Datei in Windows finden können.)

0
FreeText

In meinem Fall muss ich hinzufügen:

sql_mode="STRICT_TRANS_TABLES"

unter [mysqld] in der Datei my.ini gelegen in C:\xampp\mysql\bin.

0