Heim >Datenbank >MySQL-Tutorial >Wie stelle ich den globalen SQL_MODE in MySQL dauerhaft ein?

Wie stelle ich den globalen SQL_MODE in MySQL dauerhaft ein?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-01 17:00:12610Durchsuche

How to Permanently Set Global SQL_MODE in MySQL?

Einstellen des globalen SQL_MODE in MySQL: Eine Anleitung

Bei der Arbeit mit MySQL stößt man oft auf die Notwendigkeit, die SQL_MODE-Einstellung zu ändern. Dieser Modus regelt eine Reihe von SQL-Verhaltens- und Parserkonfigurationen und beeinflusst Faktoren wie Datenvalidierung, Transaktionsverarbeitung und mehr.

Ist die Befehlsstruktur korrekt?

Die Syntax zum Festlegen mehrerer Modi in SQL_MODE mit dem SET-Befehl ist korrekt:

SET GLOBAL SQL_MODE='NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLE','NO_AUTO_CREATE_USER','NO_ENGINE_SUBSTITUTION'

Vorteile von Session und Global Modi

  • Sitzungsmodus: Wirkt sich nur auf die aktuelle Sitzung aus und wird bei Sitzungsbeendigung zurückgesetzt. Ideal für temporäre oder benutzerspezifische SQL_MODE-Einstellungen.
  • Globaler Modus: Wirkt sich auf alle nachfolgenden Sitzungen aus, bis sie geändert werden. Geeignet für systemweite, permanente Konfigurationen, die für alle Benutzer gelten.

Globaler Modus vs. Sitzungsmodus

Wenn Sie mit einem Szenario wie der Aktualisierung der Datenbank mit UNC-Werten unter Verwendung verschiedener Benutzer konfrontiert werden Das Festlegen eines globalen Modus für NO_BACKSLASH_ESCAPES ist sinnvoll, da dadurch sichergestellt wird, dass alle Benutzer betroffen sind, unabhängig von ihren Sitzungseinstellungen.

Globalen SQL_MODE festlegen Dauerhaft

Leider ist die direkte Änderung globaler Einstellungen mit SET nicht dauerhaft und wird nach einem MySQL-Neustart zurückgesetzt. Um Änderungen dauerhaft zu machen, legen Sie den Modus in der Konfigurationsdatei (/etc/mysql/my.cnf) fest:

[mysqld]
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

Verwenden Sie für neuere MySQL-Versionen (z. B. 5.7.8) die folgende Syntax:

[mysqld]
sql-mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"

Fazit

Für systemweite, persistente SQL_MODE-Einstellungen, die sich auf alle Benutzer auswirken, ist das Festlegen eines globalen Der Modus ist der bevorzugte Ansatz. In der Konfigurationsdatei sollten dauerhafte Änderungen vorgenommen werden, um sicherzustellen, dass das gewünschte SQL-Verhalten über alle Sitzungen hinweg konsistent ist.

Das obige ist der detaillierte Inhalt vonWie stelle ich den globalen SQL_MODE in MySQL dauerhaft ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn