Používáte soket Unix. Při čtení "localhost" to klientské knihovny MySQL neinterpretují jako hostitele TCP "localhost" a nerozeznají tento název, ale použijí výchozí umístění Socketu. Pro použití TCP na lokálním počítači musíte použít 127.0.0.1 jako název hostitele.
Chcete-li určit minulost, použijte unix_socket místo host v DSN. Umístění soketu použitého pro localhost lze definovat v době kompilace nebo v některých verzích PHP pomocí pdo_mysql.default_socket v php.ini .