Използвате Unix сокет. Когато четете "localhost", MySQL клиентските библиотеки не го интерпретират като TCP хост "localhost" и разрешават това име, а използват местоположението на Socket по подразбиране. За да използвате TCP на локалната машина, трябва да използвате 127.0.0.1 като име на хост.
За да посочите миналото, използвайте unix_socket вместо host в DSN. Местоположението на сокета, използван за localhost може да се дефинира по време на компилиране или в някои версии на PHP с помощта на pdo_mysql.default_socket в php.ini .