CascadiaPHP 2024

Persistente (dauerhafte) Verbindungen

Verwendung persistenter Verbindungen

Wenn mysqli zusammen mit mysqlnd verwendet wird, erzeugt es beim Aufbau einer persistenten Verbindung auf dem Server einen COM_CHANGE_USER- (mysql_change_user()) Aufruf. Dadurch wird sichergestellt, dass sich die Verbindung erneut authentifiziert.

Da mit dem COM_CHANGE_USER-Aufruf ein gewisser Mehraufwand verbunden ist, ist es möglich, diesen bei der Kompilierung zu deaktivieren. Wenn dann eine persistente Verbindung wiederverwendet wird, wird ein COM_PING- (mysql_ping) Aufruf erzeugt, um einfach zu testen, ob die Verbindung erneut verwendet werden kann.

Die Erzeugung von COM_CHANGE_USER kann mit dem Kompilierungs-Flag MYSQLI_NO_CHANGE_USER_ON_PCONNECT deaktiviert werden. Nur als Beispiel:

shell# CFLAGS="-DMYSQLI_NO_CHANGE_USER_ON_PCONNECT" ./configure --with-mysql=/usr/local/mysql/ --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql/bin/mysql_config --enable-debug && make clean && make -j6

Oder alternativ:

shell# export CFLAGS="-DMYSQLI_NO_CHANGE_USER_ON_PCONNECT"
shell# configure --whatever-option
shell# make clean
shell# make

Es ist zu beachten, dass COM_CHANGE_USER nur von mysqli in Verbindung mit mysqlnd verwendet wird. Andere Erweiterungs-Treiber-Kombinationen verwenden bei der ersten Nutzung einer persistenten Verbindung COM_PING.

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top