Sono un po' confuso dalla tua domanda.
Sono in piedi sulla finestra
Vuoi dire che il tuo codice PHP è in esecuzione su un computer MSWindows?
il mio server è in UNIX
Se il server del database e il client del database (PHP) sono in esecuzione su macchine diverse, non possono comunicare tramite i socket del filesystem UNIX.
Il codice seguente funziona correttamente, se il mio server è in TCP/IP.
No, la tua interpretazione o la tua descrizione degli eventi non sono corrette. Se specifichi 'localhost' come host di destinazione in un client libmysql (inclusa l'estensione mysql_ di PHP), il client proverà a connettersi tramite il socket del filesystem (Unix). OTOH. se specifichi 127.0.0.1, utilizzerà un socket TCP.
Nel primo scenario, il client ottiene il percorso del socket da ~/.my.cnf, o in assenza di quel file /etc/my.cnf, o se hai compilato tu stesso la lib del client, $PREFIX/etc /mio.cnf