Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

I have a LAMP stack box (CentOS 6) and another CentOS 6 box running mysql server.

I've installed phpmyadmin on the LAMP box but I can not get it to talk to my SQL box at all.

I have configured the following in config.inc.php

/* Servers configuration */
$i = 0;

/* Server: usp-ggdb2 [1] */
$i++;
$cfg['Servers'][$i]['verbose'] = 'usp-ggdb2';
$cfg['Servers'][$i]['host'] = '10.1.2.3';
$cfg['Servers'][$i]['port'] = '';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['user'] = '';
$cfg['Servers'][$i]['password'] = '';

When I browse to the phpmyadmin site I get the following error:

#2002 - Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) The server is not responding (or the local server's socket is not correctly configured).

I don't know why it is talking about trying to connect to a local server as I've configured just the one server (and it's remote).

If i tcpdump I can see that it makes no attempt to establish a connection to the IP i specified.

It's as if my config file is being ignored.

Is there a way to turn on some more debug information? Any and all suggestions welcome!

share|improve this question
    
A detail blog is here: goo.gl/FZ6nqD –  Suresh Kamrushi Sep 4 at 6:30

2 Answers 2

up vote 1 down vote accepted

I have resolved the issue. Indeed, my config file was being ignored. I had been copying config.inc.sample.php to config.inc.php in the top level directory of the website (/var/www/html/pma).

However, on CentOS 6 there is a separate config directory -- /etc/phpMyAdmin/. Once I copied my config there, everything works ok.

share|improve this answer

One of the standard settings found in RHEL 6 and CentOS 6 is SELinux defaults to enforcing mode. You can verify that with the getenforce command.

If in Enforcing mode the quickest way to verify if that SELinux is the culprit is often to temporarily disable SELinux with setenforce 0. If with SELinux disabled everything works as expected it's confirmed.

Return SELinux to enforcing mode with setenforce 1 and set the policy governing network based database access for web applications to allowed:

   setsebool -P httpd_can_network_connect_db 1

If the MySQL database is listening to a non-standard port that may be insufficient and you could try to allow the generic network policy:

  sesebool -P httpd_can_network_connect 1 
share|improve this answer
    
SELinux is disabled on both machines. I've created a simple test PHP page with a mysqli_connect statement and this works fine. It's as if my config file is being completely ignored. –  wimnat May 4 at 23:42

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.