int mysql_options(MYSQL *mysql, enum mysql_option
option, const char *arg)
Beschreibung
Kann verwendet werden, um zusätzliche Verbindungsoptionen einzustellen und das Verhalten einer Verbindung zu beeinflussen. Diese Funktion kann auch mehrmals aufgerufen werden, um mehrere Optionen zu setzen.
mysql_options()
sollte nach
mysql_init()
und vor
mysql_connect()
oder
mysql_real_connect()
aufgerufen werden.
Das option
-Argument ist die einzustellende
Option und das arg
-Argument ist ihr Wert.
Ist die Option ein Integer, so sollte arg
auf den Wert dieses Integers verweisen.
Mögliche Optionswerte:
Option | Argumenttyp | Funktion |
MYSQL_INIT_COMMAND |
char * |
Befehl, der bei Verbindung mit dem MySQL Server auszuführen ist. Wird bei Neuverbindungen automatisch erneut ausgeführt. |
MYSQL_OPT_COMPRESS |
Nicht verwendet | Komprimiertes Client/Server-Protokoll soll verwendet werden. |
MYSQL_OPT_CONNECT_TIMEOUT |
unsigned int * |
Verbindungs-Timeout in Sekunden. |
MYSQL_OPT_GUESS_CONNECTION |
Nicht verwendet | Für eine mit libmysqld verlinkte Anwendung, kann die
Bibliothek hiermit erschließen, ob ein Embedded
Server oder ein Remote Server verwendet wird.
„Erschließen“ bedeutet: Wenn ein
Hostname angegeben ist, der nicht auf
localhost lautet, wird ein
Remote-Server benutzt. Dieses voreingestellte
Verhalten kann mit
MYSQL_OPT_USE_EMBEDDED_CONNECTION
und MYSQL_OPT_USE_REMOTE_CONNECTION
außer Kraft gesetzt werden. Die Option wird von
Anwendungen, die mit libmysqlclient
verlinkt sind, ignoriert. |
MYSQL_OPT_LOCAL_INFILE |
Optionaler Zeiger auf uint | Wenn kein Zeiger angegeben ist oder wenn der Zeiger auf ein
unsigned int != 0 verweist, wird
der Befehl LOAD LOCAL INFILE
eingeschaltet. |
MYSQL_OPT_NAMED_PIPE |
Nicht verwendet | Zur Verbindung mit einem MySQL Server auf NT werden Named Pipes benutzt. |
MYSQL_OPT_PROTOCOL |
unsigned int * |
Der zu verwendende Protokolltyp. Er sollte einer der Enumerationswerte
von mysql_protocol_type sein, die
in mysql.h definiert sind. |
MYSQL_OPT_READ_TIMEOUT |
unsigned int * |
Timeout-Leseoperationen auf dem Server (funktioniert zurzeit nur für Windows und mit TCP/IP-Verbindungen). |
MYSQL_OPT_RECONNECT |
my_bool * |
Aktiviert/deaktiviert die automatische Neuverbindung mit dem Server, wenn die Verbindung abgebrochen war. Die Neuverbindung ist seit MySQL 5.0.3 standardmäßig ausgeschaltet. Diese Option ist neu in 5.0.13 und bietet die Möglichkeit, das Verhalten in Bezug auf Neuverbindungen explizit vorzugeben. |
MYSQL_OPT_SET_CLIENT_IP |
char * |
Für eine Anwendung, die mit libmysqld verlinkt ist
(wobei libmysqld mit
Authentifizierungsunterstützung kompiliert wurde),
bedeutet dies, dass bei der Authentifizierung davon
ausgegangen wird, dass sich der Benutzer von der (als
String) angegebenen IP-Adresse aus verbindet. Bei
Anwendungen, die mit libmysqlclient
verlinkt sind, wird diese Option ignoriert. |
MYSQL_OPT_USE_EMBEDDED_CONNECTION |
Nicht verwendet | Für eine Anwendung, die mit libmysqld verlinkt ist,
zwingt dies zur Benutzung des Embedded Servers für
die Verbindung. Bei Anwendungen, die mit
libmysqlclient verlinkt sind, wird
diese Option ignoriert. |
MYSQL_OPT_USE_REMOTE_CONNECTION |
Nicht verwendet | Für eine Anwendung, die mit libmysqld verlinkt ist,
zwingt dies zur Benutzung eines Remote-Servers für
die Verbindung. Bei Anwendungen, die mit
libmysqlclient verlinkt sind, wird
diese Option ignoriert. |
MYSQL_OPT_USE_RESULT |
Nicht verwendet | Diese Option wird nicht benutzt. |
MYSQL_OPT_WRITE_TIMEOUT |
unsigned int * |
Timeout für Schreiboperationen auf dem Server (funktioniert zurzeit nur für Windows und mit TCP/IP-Verbindungen). |
MYSQL_READ_DEFAULT_FILE |
char * |
Leseoptionen werden aus der angegebenen Optionsdatei statt aus
my.cnf entnommen. |
MYSQL_READ_DEFAULT_GROUP |
char * |
Leseoptionen werden aus der angegebenen Gruppe aus
my.cnf oder aus der Datei, die in
MYSQL_READ_DEFAULT_FILE angegeben
wurde, entnommen. |
MYSQL_REPORT_DATA_TRUNCATION |
my_bool * |
Aktiviert oder deaktiviert die Meldung von Fehlern wegen des
Abschneidens von Daten für vorbereitete Anweisungen
mit MYSQL_BIND.error .
(Standardeinstellung: Deaktiviert.) |
MYSQL_SECURE_AUTH |
my_bool* |
Gibt an, ob eine Verbindung mit einem Server aufgebaut wird, der nicht das Passwort-Hashing von MySQL 4.1.1 und höher unterstützt. |
MYSQL_SET_CHARSET_DIR |
char* |
Der Pfad zu dem Verzeichnis, das die Dateien mit den Zeichensatzdefinitionen enthält. |
MYSQL_SET_CHARSET_NAME |
char* |
Der Name des Zeichensatzes, der als Standard zu verwenden ist. |
MYSQL_SHARED_MEMORY_BASE_NAME |
char* |
Der Name des Shared Memory-Objekts für die Serverkommunikation. Sollte
dasselbe sein wie die Option
--shared-memory-base-name für den
mysqld-Server, mit dem Sie sich
verbinden möchten. |
Beachten Sie, dass immer die client
-Gruppe
gelesen wird, wenn Sie
MYSQL_READ_DEFAULT_FILE
oder
MYSQL_READ_DEFAULT_GROUP
benutzen.
Die angegebene Gruppe in der Optionsdatei kann folgende Optionen enthalten:
Option | Beschreibung |
connect-timeout |
Verbindungs-Timeout in Sekunden. Bei Linux wird dieser Timeout auch verwendet, wenn das System auf die erste Antwort vom Server wartet. |
compress |
Verwendung des komprimierten Client/Server-Protokolls. |
database |
Wenn im Verbindungsbefehl keine Datenbank angegeben wurde, wird diese verwendet. |
debug |
Debuggingoptionen. |
disable-local-infile |
Deaktiviert LOAD DATA LOCAL . |
host |
Standardhostname. |
init-command |
Befehl, der bei Verbindung mit dem MySQL Server ausgeführt wird. Wird bei Neuverbindung automatisch erneut ausgeführt. |
interactive-timeout |
Dasselbe wie CLIENT_INTERACTIVE mit
mysql_real_connect() . Siehe
Abschnitt 24.2.3.51, „mysql_real_connect() “. |
local-infile[=(0|1)] |
Wenn kein Argument oder argument != 0 vorhanden ist, wird LOAD
DATA LOCAL aktiviert. |
max_allowed_packet |
Maximalgröße der Pakete, die der Client vom Server lesen kann. |
multi-results |
Mehrfachergebnismengen von Mehrfachanweisungen oder mehrfach gespeicherten Prozeduren sind zulässig. |
multi-statements |
Client darf mehrere Anweisungen in einem einzigen String senden
(getrennt durch ‘; ’). |
password |
Standardpasswort. |
pipe |
Zur Verbindung mit einem MySQL Server auf NT werden Named Pipes benutzt. |
protocol={TCP|SOCKET|PIPE|MEMORY} |
Das Protokoll für die Serververbindung. |
port |
Standardportnummer. |
return-found-rows |
Lässt mysql_info() bei einem
UPDATE die gefundenen anstatt der
aktualisierten Zeilen zurückgeben. |
shared-memory-base-name= |
Shared Memory-Name für die Serververbindung (Standardwert ist "MYSQL"). |
socket |
Standardsocketdatei. |
user |
Standardbenutzer. |
Beachten Sie, dass timeout
zwar durch
connect-timeout
ersetzt, aber
timeout
in MySQL 5.1.5-alpha aus
Gründen der Abwärtskompatibilität immer noch unterstützt
wird.
Weitere Informationen über Optionsdateien finden Sie unter Abschnitt 4.3.2, „my.cnf-Optionsdateien“.
Rückgabewerte
Bei Erfolg null und bei Verwendung einer unbekannten Option ein von null verschiedener Wert.
Beispiel
MYSQL mysql; mysql_init(&mysql); mysql_options(&mysql,MYSQL_OPT_COMPRESS,0); mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"odbc"); if (!mysql_real_connect(&mysql,"host","user","passwd","database",0,NULL,0)) { fprintf(stderr, "Failed to connect to database: Error: %s\n", mysql_error(&mysql)); }
Dieser Code veranlasst den Client, das komprimierte
Client/Server-Protokoll zu verwenden und die zusätzlichen
Optionen aus dem Abschnitt odbc
der Datei
my.cnf
zu lesen.
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.