I've run into an issue where a routine upgrade of phpMyAdmin to phpMyAdmin-4.0.10.17-2.el6 from 0:4.0.10.16-1.el6 on CentOS 6 causes some strange behavior with logins to a mysql server. Basically, users are unable to consistently login. I've tried a login as myself and was able to get in, but my coworker can attempt it with a cache-cleared browser and be met with a #1045 - Unable to login to the MySQL server error. The weird thing is when the page reloads, it has my username in the Username field, as if its trying to access my previous session. The mysqld error log also lists my username on these subsequent failed attempts. As far as I know, we don't have PHP APC or anything like that installed, nor are we using any kind of Apache reverse-proxy.
Attempts to access the MySQL box from a bash shell on the PHPMyAdmin server work just fine, as expected. In addition, downgrading the version resolves the issue. I looked around the phpmyadmin github bug section and could not find anyone reporting similar behavior.
Has anyone else experienced this issue? Is there any kind of debug or verbose logging I can enable to try to see what's happening on those auth attempts?
EDIT: Probably should've added our conf file…
<?php
/**
* phpMyAdmin configuration file, you can use it as base for the manual
* configuration. For easier setup you can use "setup/".
*
* All directives are explained in Documentation.html and on phpMyAdmin
* wiki <http://wiki.phpmyadmin.net>.
*/
/*
* This is needed for cookie based authentication to encrypt password in
* cookie
*/
$cfg['blowfish_secret'] = '<secret redacted>'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
/* added to stop the stupid version check */
$cfg['VersionCheck'] = false;
/**
* Server(s) configuration
*/
$i = 0;
// The $cfg['Servers'] array starts with $cfg['Servers'][1]. Do not use
// $cfg['Servers'][0]. You can disable a server config entry by setting host
// to ''. If you want more than one server, just copy following section
// (including $i incrementation) serveral times. There is no need to define
// full server array, just define values you need to change.
$db_servers = array(
<server names redacted>
);
foreach ($db_servers as $db_server) {
$i++;
$cfg['Servers'][$i]['host'] = $db_server;
$cfg['Servers'][$i]['connect_type'] = 'tcp'; // How to connect to MySQL server ('tcp' or 'socket')
$cfg['Servers'][$i]['extension'] = 'mysqli'; // The php MySQL extension to use ('mysql' or 'mysqli')
$cfg['Servers'][$i]['compress'] = FALSE; // Use compressed protocol for the MySQL connection
$cfg['Servers'][$i]['auth_type'] = 'cookie'; // Authentication method (config, http or cookie based)?
}
/*
* End of servers configuration
*/
/*
* Directories for saving/loading files from server
*/
$cfg['UploadDir'] = '/var/lib/phpMyAdmin/upload';
$cfg['SaveDir'] = '/var/lib/phpMyAdmin/save';
/*
* Disable the default warning that is displayed on the DB Details Structure
* page if any of the required Tables for the relation features is not found
*/
$cfg['PmaNoRelation_DisableWarning'] = TRUE;
//http://future500.nl/phpmyadmin-slow-on-startup/:
$cfg['MaxExactCountViews'] = 0;//disable trying to count the number of rows in any view
$cfg['MaxExactCount'] = 0;//disable correcting the InnoDB estimates
?>