Il server non risponde (o il socket del server locale MySQL non è correttamente configurato) – Risolto

Dopo giorni di sbattimento ecco trovata la soluzione al mio problema.
Il problema in questione era l’accesso al phpMyAdmin di XAMPP, che da qualche settimana non mi permetteva più di mettere le mani sulle mie tabelle MySQL.
Ricerche su internet hanno evidenziato che la cosa non si manifesta solo con installazioni di XAMPP ma con i server MySQL in genere.
Molte delle soluzioni trovate dagli utenti comportano la disinstallazione dei server e alternative reinstallazioni di pacchetti simili.
A me non andava di fare questo visto che si tratta di una versione portable della suite XAMPP e visto anche che il problema era dato solo su alcuni pc e non su altri.
La cosa strana in tutto questo è che il phpMyAdmin riportava l’errore:

#2002 – Il server non risponde (o il socket del server locale MySQL non è correttamente configurato).
Connessione per controluser come definito nella configurazione fallita.

dovuto quindi ad un mal funzionamento del server MySQL, ma in realtà l’unico a non funzionare era solo il phpMyAdmin, mentre tutte le mie webapp giravano tranquillamente.
A questo punto la colpa era da dare alla macchina che fa girare i server e non ai server stessi.
Andando alla cartella:

G:\xampp\mysql\data\

ed aprendo il file:

mysql_error.log

ho trovato queste righe:

130131  8:26:20 [Note] Plugin 'FEDERATED' is disabled.
130131  8:26:20 InnoDB: The InnoDB memory heap is disabled
130131  8:26:20 InnoDB: Mutexes and rw_locks use Windows interlocked functions
130131  8:26:20 InnoDB: Compressed tables use zlib 1.2.3
130131  8:26:20 InnoDB: Initializing buffer pool, size = 16.0M
130131  8:26:20 InnoDB: Completed initialization of buffer pool
130131  8:26:21 InnoDB: highest supported file format is Barracuda.
130131  8:26:22  InnoDB: Waiting for the background threads to start
130131  8:26:23 InnoDB: 1.1.8 started; log sequence number 2041678
130131  8:26:23 [Note] Server hostname (bind-address): '0.0.0.0'; port: 3306
130131  8:26:23 [Note]   - '0.0.0.0' resolves to '0.0.0.0';
130131  8:26:23 [Note] Server socket created on IP: '0.0.0.0'.
130131  8:26:25 [Note] Event Scheduler: Loaded 0 events
130131  8:26:25 [Note] mysql\bin\mysqld.exe: ready for connections.
Version: '5.5.25a'  socket: ''  port: 3306  MySQL Community Server (GPL)

Le righe che mi hanno portato all’intuizione sono:

130131  8:26:23 [Note] Server hostname (bind-address): '0.0.0.0'; port: 3306
130131  8:26:23 [Note]   - '0.0.0.0' resolves to '0.0.0.0';
130131  8:26:23 [Note] Server socket created on IP: '0.0.0.0'.

Questo significa che il server stava cercando di creare un socket all’indirizzo 0.0.0.0… non funzionerà mai ho pensato. L’indirizzo 0.0.0.0 non esiste.
Ma chi è che detta le leggi dns locali in un computer?
-Il file hosts
Allora subito a cercare il file hosts

C:\Windows\System32\drivers\etc

ed infatti alla prima riga veniva settata questa corrispondenza

0.0.0.0 localhost

che invece ho modificato in

127.0.0.1 localhost

Una bella riavviata al server e voilà adesso il phpMyAdmin funziona di nuovo.
Per vedere come si trova e come si modifica il file hosts in Windows 7 (ma è uguale anche su XP e Vista) puoi dare un’occhiata qui.

Potrebbero interessarti anche...