Le contenu de cet article concerne le BUG (problème de variable d'environnement) causé par la sortie du projet laravel. Il a une certaine valeur de référence. J'espère que les amis dans le besoin pourront s'y référer. vous être utile.
Après une certaine version du projet laravel, une erreur s'est produite soudainement lors de la connexion à la base de données du projet, mais il était OK de se connecter à la machine en utilisant le même compte de base de données et le même mot de passe.
Solution temporaire
Après une courte période d'enquête, la raison n'a pas été trouvée. Le mot de passe d'origine de la base de données était DB_PASSWORD=abcde#142 !*. le mot de passe de la base de données à DB_PASSWORD. Après =abcde2019, il reviendra à la normale.
Idées de dépannage
Après avoir modifié le mot de passe, la base de données peut être connectée normalement, ce qui montre qu'il s'agit d'un problème de mot de passe. En même temps, le même mot de passe échoue. pour accéder à la base de données du projet mais est accessible sur la machine. En cas de succès, il peut être déterminé que le problème de mot de passe est dû à des problèmes environnementaux.
Imprimez le journal de configuration de la connexion à la base de données dans le projet, comme suit :
Array ( [driver] => mysql [host] => xxx [port] => xxx [database] => xxx [username] => xxx [password] => abcde [unix_socket] => [charset] => utf8mb4 [collation] => utf8mb4_unicode_ci [prefix] => [strict] => 1 [engine] => )
La configuration du mot de passe visible dans env est DB_PASSWORD=abcde#142!*
, mais la configuration du mot de passe de la base de données lue dans le PHP code est abcde
, on peut voir que le code de contenu après # est considéré comme un commentaire et est ignoré.
En continuant à vérifier le journal de publication de Jenkins, j'ai trouvé un extrait du journal :
Package operations: 0 installs, 3 updates, 0 removals - Updating vlucas/phpdotenv (v2.5.2 => v2.6.0): Downloading (connecting...)Downloading (0%) Downloading (15%)Downloading (100%)
Pendant le processus de publication, il y a eu une mise à niveau d'un package dépendant.
Regardez la documentation de vlucas/phpdotenv et consultez les instructions suivantes :
Commentaires
Vous pouvez commenter votre fichier .env en utilisant le caractère # Par exemple
<.># this is a comment VAR="value" # comment VAR=value # comment
Solution
.env, ajoutez des guillemets doubles au champ du mot de passe, tels que DB_PASSWORD="abcde#142!*", puis tout revient à la normale. Il est recommandé d'ajouter "" à la configuration des variables d'environnement dans le fichier .env pour éviter des catastrophes inattendues.Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!