Stai usando un socket Unix. Quando si leggono "localhost", le librerie client MySQL non lo interpretano come host TCP "localhost" e risolvono quel nome ma usano la posizione Socket predefinita. Per usare TCP sulla macchina locale devi usare 127.0.0.1
come nome host.
Per specificare il passato usa unix_socket
invece di host
nel DSN. La posizione del socket utilizzato per localhost
può essere definito in fase di compilazione o in alcune versioni di PHP usando pdo_mysql.default_socket
nel php.ini
.