Can’t connect to mysql server (13) from http

FavoriteLoadingAggiungi ai preferiti

Se il vostro sito web, applicazione o script, vi stampa il messaggio “Can’t connect to mysql server (13)” aprendolo nel browser, mentre se provate a chiamarlo da CLI (Command Line Interface) la connessione va a buon fine, le motivazioni posso essere diverse.

Potreste aver impostato i parametri di connesione al database in maniera errata, il server mysql potrebbe essere spento, ma quello sui cui vogliamo concentrare l’attenzione qui è dovuto a l’impossibilità del server web di collegarsi al server mysql.

Partiamo dal presupposto che la situazione sia questa:

  • VM1 è il server web su cui gira la nostra applicazione (e-commerce, sito web, applicazione)
  • VM2 è il server MySQL che ospita i dati della nostra applicazione

Come vediamo il server web, Apache in questo caso, e il server MySQL sono ospitati da due server distinti , che potrebbero trovarsi nella stessa rete locale; le due macchine hanno ip diversi, per forza direte voi 🙂

La configurazione per la connessione al server MySQL della nostra applicazione sarà quindi del tipo

In una situazione come questa può succedere che, se lanciamo la nostra applicazione tramite CLI la connessione vada a buon fine, mentre, se apriamo l’applicazione via web (http://miosito.com) otteniamo come risposta l’errore “Can’t connect to mysql server (13)”.

Questo è dovuto all’impossibilità del web server di connettersi in remoto al database.

Per risolvere dobbiamo quindi “Abilitare l’accesso remoto a MySQL nel server web” e possiamo farlo lancianod il comando

direttamente sul server web