recherche

Maison  >  Questions et réponses  >  le corps du texte

PDOException SQLSTATE Le fichier ou le répertoire n'existe pas

<p> Je crois avoir déployé avec succès mon site Web (très basique) sur Fortrabbit, mais une fois connecté à SSH, exécutez certaines commandes comme <code>php artisan migrate</code> ;/code>), je recevrai un message d'erreur : </p> <pre class="brush:php;toolbar:false;">[PDOException] SQLSTATE[HY000] [2002] Aucun fichier ou répertoire de ce type</pre> <p>À un moment donné, la migration a dû réussir car mes tables existent - mais cela n'explique pas pourquoi cela ne fonctionne pas pour moi maintenant. </p>
P粉038161873P粉038161873504 Il y a quelques jours656

répondre à tous(2)je répondrai

  • P粉731977554

    P粉7319775542023-08-11 00:43:41

    L'une des raisons les plus simples de cette erreur est que le serveur MySQL ne fonctionne pas. La première étape consiste donc à vérifier. Si ça marche, voici les autres suggestions :

    J'ai eu exactement le même problème. Aucune des solutions ci-dessus n'a fonctionné pour moi. J'ai résolu le problème en changeant le "host" dans le fichier /app/config/database.php de "localhost" à "127.0.0.1".

    Je ne sais pas pourquoi "localhost" ne fonctionne pas par défaut, mais j'ai trouvé cette réponse à un problème similaire et elle a été résolue dans un article symfony2. https://stackoverflow.com/a/9251924

    Mise à jour : Certaines personnes ont demandé pourquoi ce correctif fonctionnait, j'ai donc fait quelques recherches sur le problème. Comme expliqué dans cet article, ils utilisent différents types de connexion. https://stackoverflow.com/a/9715164

    Le problème ici est que "localhost" utilise un socket UNIX et ne trouve pas la base de données dans le répertoire standard. Cependant, "127.0.0.1" utilise TCP (Transmission Control Protocol), ce qui signifie qu'il fonctionne sur le "réseau local" de votre ordinateur et est plus fiable qu'un socket UNIX.

    répondre
    0
  • P粉148434742

    P粉1484347422023-08-11 00:10:06

    Le message d'erreur indique une tentative d'établissement d'une connexion MySQL sur un socket (qui n'est pas pris en charge).

    Dans le contexte de Laravel (artisan), vous souhaiterez peut-être utiliser un environnement différent/correct. Par exemple : php artisan migrate --env=production (ou tout autre environnement). Voir ici.

    répondre
    0
  • Annulerrépondre