Weiter Zurück [Inhalt] Online Suche im Handbuch

28.21 SET OPTION

SET [OPTION] SQL_VALUE_OPTION= value, ...
Der Befehl SET OPTION setzt verschiedene Optionen, die sich auf Client und Server auswirken:

CHARACTER SET character_set_name | DEFAULT 

Hier werden alle Character und Strings zwischen Client und Server mit einer Tabelle übersetzt. Momentan ist die einzige einstellbare Option das Character - Set cp1251_koi8, allerdings kann dieses einfach geändert werden, in dem man im Quellcode in der Datei Sql/convert.cc eine neues Character - Set einstellt, und dann den MySQL Server neu kompiliert. Unter Windows 98/NT ist dies nicht möglich. Um wieder auf das alte Character - Set zurückzustellen, genügt die Angabe der Option DEFAULT

PASSWORD = PASSWORD('ein passwort') setzt das Passwort für den momentanen User. Jeder nicht anonyme User, der auch offiziell Rechte an seinen Datensätzen besitzt, kann hiermit sein Passwort verändern, um den Zugriff fremder User zu verhindern.

PASSWORD FOR user = PASSWORD('ein passwort') setzt das Passwort für einen bestimmten User auf dem Server. Hierzu ist allerdings nur ein User berechtigt, der Zugang zu der entsprechenden MySQL Datenbank hat. Das Passwort sollte im Format user@domain.de angegeben werden, entsprechend den Einträgen in den User und Host Spalten der mysql.user Tabelle.

Wenn also in den Spalten für User und Host beispielsweise Robert und %.oracle.de eingetragen ist, dann muß der Befehl so lauten:

      mysql> SET PASSWORD FOR bob@"%.loc.gov" = PASSWORD("newpass");

SQL_BIG_TABLES = 0 | 1 veranlaßt den MySQL Serverdämon, die Tabellen vorrangig auf der Festplatte zu lagern (Einstellung 1). Bei größeren Tabellen würde ansonsten das komplette RAM und evtl. der Swapspeicher verwendet werden. Andere Dämonen (Apache WWW-Server, CGI-BIN´s) hätten dann evtl. nicht genügend Arbeitsspeicher übrig. Bei der Einstellung 0 werden dann alle Tabellen im RAM gehalten, was zwar etwas schneller ist, allerdings in Versionen < 3.23 zu dem Fehler : table_name is full geführt hat. Die Version 3.23 lagert diese HEAP Tabellen selbstständig in ein SWAP-File aus. Der Standardwert bei einer neuen Verbindung zum MySQL Server ist 0. Auf 1 gesetzt, treten größere Performanceeinbrüche bei SELECT Statements in Zusammenhang mit WHERE auf. Falls ein SELECT Statement mehr als max_join_size rows untersuchen muß, können ebenfalls Performanceeinbrüche auftreten.

SQL_BIG_SELECTS = 0 | 1 auf 1 gesetzt, verhindert, daß MySQL zu lange sucht. Insbesondere bei Statements, deren Laufzeit sich nicht abschätzen läßt, sollte diese Option eingeschaltet werden. Der Standardwert ist hier 0.

SQL_LOW_PRIORITY_UPDATES = 0 | 1 auf 1 gesetzt sorgt dafür, daß SELECT Abfragen stets mit hoher Priorität vor den Statements INSERT, UPDATE und DELETE abgearbeitet werden. Veränderungen in den Tabellen werden also verzögert durchgeführt. In einigen Fällen müssen, damit Inkonsistenzen vermieden werden, Locks gesetzt werden.

SQL_SELECT_LIMIT = value | DEFAULT gibt eine maximale Zahl von Einträgen an, die durchsucht werden können. Allerdings kann man mit Hilfe der Angabe von LIMIT... diese Grenze überschreiten, damit man z.B. alle Daten seitenweise ausgeben kann. Standardmäßig ist der Wert auf 0 eingestellt, es gibt also keine Begrenzung.

SQL_LOG_OFF = 0 | 1 auf 1 gesetzt bewirkt, daß keine Einträge in die Standard Log-Datei geschrieben werden, falls der Client das Prozess Privileg besitzt. Das Update Log wird davon nicht beeinflußt.

SQL_LOG_UPDATE = 0 | 1 auf 0 gesetzt, verhindert, daß in das Update Log geschrieben wird. Die Standard Log-Datei ist hiervon nicht betroffen !

TIMESTAMP = timestamp_value | DEFAULT setzt die Zeit für den Client. Damit wird sichergestellt, daß die Systemzeit für Client und Server dieselbe ist, insbesondere dann, wenn UPDATE und RESTORE auf Zeilen durchgeführt wird.

LAST_INSERT_ID = # setzt den Wert, der von der Funktion LAST_INSERT_ID() zurückgegeben wird. Dieser wird in dem UPDATE Log gespeichert, wenn LAST_INSERT_ID() in einem Statement verwendet wird, welches Daten aktualisiert. INSERT_ID = # setzt eine Spalte mit AUTO-INCREMENT Eigenschaften auf diesen Wert. Bei INSERT und UPDATE Statements beginnen die Werte dann nicht mit 1, sondern dem angegebenen Wert. Für verteilte Datenbanken, die eine laufende Zahl als Schlüssel (Key) verwenden, könnte diese Option interessant sein.


Weiter Zurück [Inhalt] Online Suche im Handbuch