PDOException SQLSTATE Le fichier ou le répertoire n'existe pas
P粉038161873
P粉038161873 2023-08-10 17:44:11
0
2
622
<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粉038161873
P粉038161873

répondre à tous(2)
P粉731977554

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.

P粉148434742

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.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!