title: Confusing PDO-only problem : Can't connect through socket/Access denied/Can't connect to server (shared host)
body: <p>So the problem changed from what it was, i'll leave the original question below to prevent bad reviews on answers like I had after someone editing his question I answered :</p>
  
  <p>So I am working on a (really lame) shared hosting which has PDO installed, but it doesn't work.
  With default parameters</p>
  
  <pre><code>&lt;?php
  try {
      $dbh = new PDO('mysql:host=localhost;dbname=THE_DB_NAME', 'THE_USER', 'THE_PASSWORD');
      echo 'Connected to database';
      }
  catch(PDOException $e)
      {
      echo $e-&gt;getMessage();
      }
  ?&gt;
  </code></pre>
  
  <p>it throws this message :</p>
  
  <pre><code>SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
  </code></pre>
  
  <p>With a simple mysql_connect, it works.</p>
  
  <p>And the socket path seems correct (both phpinfo and this query :</p>
  
  <pre><code>show variables like 'socket';
  </code></pre>
  
  <p>confirm.</p>
  
  <p>Localhost redirects to 10.103.0.14 (this data comes from mysql_get_host_info()  and in phpMyAdmin)</p>
  
  <p>In the PDO, if i replace localhost by 127.0.0.1 i will get</p>
  
  <pre><code>SQLSTATE[HY000] [2003] Can't connect to MySQL server on '127.0.0.1' (111) 
  </code></pre>
  
  <p>And if i replace localhost by 10.103.0.14 :</p>
  
  <pre><code>Access denied for user 'USER_NAME'@'10.103.0.14' (using password: YES
  </code></pre>
  
  <p>Both IP adress (127.0.0.1 and 10.103.0.14) work with mysql_connect.</p>
  
  <p>So apparently the problem comes from the PDO connection.</p>
  
  <p>Does somebody knows where this could come from, or/and any way to fix it ?</p>
  
  <p>Some server datas :</p>
  
  <p>The PHP Version : 5.2.10
  You can see the server's phpinfo : <a href="http://web.lerelaisinternet.com/abcd.php?v=5" rel="noreferrer">http://web.lerelaisinternet.com/abcd.php?v=5</a>
  No command line possible.
  (i know it should be the tech suport's job, but they're reaaaaaly slow)</p>
  
  <p>Thanks</p>
  
  <p>Previous question :</p>
  
  <h2>How to find the mysql.sock on a shared host (tricky way needed...)</h2>
  
  <p>So today's problem is : The PDO connection doesn't work on a shared host, and it's supposed to (it's installed on the server).
  Just a basic PDO connection :</p>
  
  <pre><code>&lt;?php
  try {
      $dbh = new PDO('mysql:host=localhost;dbname=THE_DB_NAME', 'THE_USER', 'THE_PASSWORD');
      echo 'Connected to database';
      }
  catch(PDOException $e)
      {
      echo $e-&gt;getMessage();
      }
  ?&gt;
  </code></pre>
  
  <p>throws this message :</p>
  
  <pre><code>SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
  </code></pre>
  
  <p>A regular mysql connection :</p>
  
  <pre><code>mysql_connect("localhost", "THE_USER", "THE_PWD") or die(mysql_error()); 
  mysql_select_db("24DLJLRR1") or die(mysql_error());;
  echo 'Connected to database &lt;br/&gt;';
  </code></pre>
  
  <p>works fine.</p>
  
  <p>So apparently it cannot find the .sock.
  I think specifying the correct address should work, i tried some "classic" mysql path that I found on internet, without success.
  The phpinfo says it is at this adress (/var/lib/mysql/mysql.sock)
  (The PHP Version is 5.2.10)
  You can see the server's phpinfo : <a href="http://web.lerelaisinternet.com/abcd.php?v=5" rel="noreferrer">http://web.lerelaisinternet.com/abcd.php?v=5</a></p>
  
  <p>So i am trying to figure out where the hell it is !!!
  I tried to look in the phpMyAdmin interface, but i couldn't find the info, plus it seems that phpMyAdmin connects to a different server (it has a different IP adress, and trying to connect to it with php gives a "Wrong password" error). The mysql_connect also connects to this adress, i think it redirects to a different server with some internal password/login.</p>
  
  <p>Well if you have any idea of how to obtain this info (the provider's technical support is "fixing the problem"... it's been 1 month...).
  Also maybe the problem comes from somewhere else, but the same stuff works on other shared hosts...</p>
  
  <p>The need of PDO is because I use the Symfony framework with Doctrine for this website, and the Doctrine plugin needs PDO... I don't want to redo the website from scratch !</p>
  
  <p>Thanks for your help !</p>