持続的接続の使用
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 を使用します。