Linux – phpMyAdmin error #2002 “Cannot log in to the MySQL server”, but works from console

linuxMySQLphpmyadmin

The MySQL service on my CentOS 6.3 server works well. I'm using phpMyAdmin-3.5.8.1 from default repository. I have sites that can connect to the databases and are using them successfully.

I can also connect to the database server using the mysql -u... -p.... -h.... command.

The database is NOT on the localhost but another server.

Tried both hostname and IP in $cfg['Servers'][$i]['host'] = '10.188.8.207';

I also have a lot of free space available.

The user is not root, $cfg['Servers'][$i]['connect_type'] = 'tcp';

Edited:
I hit the same issue on another server, but the message is a bit different:

#2002 - Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

But I have

$cfg['Servers'][$i]['host'] = '192.168.100.219';
$cfg['Servers'][$i]['connect_type'] = 'tcp';

Next, I add a bit of garbage to the top of config.inc.php: I expect to see syntax error but nothing happened, thus I think phpMyAdmin just does not see/use this file.

ls -l config.inc.php
-rw-r--r-- 1 apache apache 3981 Sep  3 07:59 config.inc.php

I have no ideas. What am I doing wrong?

Best Answer

I found it eventually! Perhaps this will work for PMA from rpms only.

Despite PMA itself is in /usr/share/phpMyAdmin it expects to have config dir at /var/lib/phpMyAdmin/ and config in /etc

Solution: just edit ./libraries/vendor_config.php and set the correct paths or

ln -s /usr/share/phpMyAdmin/config.inc.php /var/lib/phpMyAdmin/config/

Edit 3 months later: On another server it checks /etc/phpMyAdmin/config.inc.php instead of /usr/share/phpMyAdmin/config.inc.php - so added this hard link and it works well now.