持続的接続の使用
mysqli と mysqlnd の組み合わせで使っている場合は、
持続的接続を作るときにサーバー上で
COM_CHANGE_USER (mysql_change_user())
を呼び出します。これで、接続の認証が再び行われることになります。
COM_CHANGE_USER の呼び出しと関連するオーバーヘッドが若干あるので、
コンパイル時にこれをオフにすることができます。
持続的接続を再利用すると、接続が再利用できるかどうか簡単にテストするために、
COM_PING (mysql_ping)
の呼び出しが生成されます。
COM_CHANGE_USER を呼び出さないようにするには、コンパイルのときに
MYSQLI_NO_CHANGE_USER_ON_PCONNECT フラグを使います。たとえば次のようになります。
例えば、
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
またはその代わりに、以下のようにします。
shell# export CFLAGS="-DMYSQLI_NO_CHANGE_USER_ON_PCONNECT" shell# configure --whatever-option shell# make clean shell# make
mysqlnd 上の mysqli だけが
COM_CHANGE_USER を使用することに注意してください。
他の拡張モジュールとドライバーの組み合わせでは、持続的な接続を最初に使用する際に、
COM_PING を使用します。