Anda menggunakan soket Unix. Saat membaca "localhost" perpustakaan klien MySQL tidak menafsirkannya sebagai host TCP "localhost" dan menyelesaikan nama itu tetapi gunakan lokasi Socket default. Untuk menggunakan TCP pada mesin lokal Anda harus menggunakan 127.0.0.1 sebagai nama host.
Untuk menentukan masa lalu gunakan unix_socket bukannya host di DSN. Lokasi soket yang digunakan untuk localhost dapat didefinisikan pada waktu kompilasi atau dalam beberapa versi PHP menggunakan pdo_mysql.default_socket di php.ini .