Je développais ma candidature à l'origine à Laravel 4.2 mais j'ai depuis décidé de le déplacer vers la version 5.0 afin qu'elle couvre beaucoup plus de changements et de forces que 5,0 a plus de 4.2.
J'essaie de courir mon migratiosn cependant J'obtiens l'erreur: p>
'mysql' => array( 'driver' => 'mysql', 'unix_socket' => '/Applications/MAMP/tmp/mysql/mysql.sock', 'host' => getenv('DB_HOST'), ... ),
5 Réponses :
Essayez ceci:
UNIX_SOCKET=/Applications/MAMP/tmp/mysql/mysql.sock
Viens de tester cela. Travaillé comme un charme!
Il convient de noter que certaines installations de Laravel 5 ne viennent pas avec un fichier config / base de données.php par défaut. Je ne sais pas pourquoi, mais je devais en créer un et ce n'est pas vraiment mentionné dans la documentation Laravel 5 (que je pouvais trouver.)
Merci de partage des solutions. J'utilise laravel 5.3.x
à Laravel 5.5 et au-dessus seulement besoin d'ajouter db_socket = / applications / MAMP / TMP / mysql / mysql.sock code> à .env et cela fonctionnera
Bien que très ancienne question, mais peut toujours aider les autres. Ajout de réponse.
Il y a même une solution simple. Ajoutez ceci à votre fichier .env p>
Merci, aidez à résoudre le problème de migration pour moi à l'aide de:
use Illuminate\Support\Facades\Schema; public function boot() { Schema::defaultStringLength(191); }
Cela fonctionne, mais méfiez-vous dans le fichier .env, il doit être db_socket code> non
unix_socket code>, veuillez le corriger.
Fabriqué Modifier en fonction des informations plus récentes de @tinyCoder et d'Esteban Bautista concernant la modification UNIX_SOCKED sur db_socket.
in Laravel 5.5 Les modifications Unix_socket Modifient DB_Socket
Intérieur Fichier .env: P>
'mysql' => [ 'driver' => 'mysql', 'host' => env('DB_HOST', '127.0.0.1'), 'port' => env('DB_PORT', '3306'), 'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), 'unix_socket' => env('DB_SOCKET', ''),
J'ai créé un compte Stackoverflow uniquement pour répondre à cette question, et peut-être aider à empêcher une personne qui traverse la douleur que j'ai traversée.
réponses que j'ai trouvée en ligne allait à partir de la modification 127.0.0.1 à Localhost, changeant le port de 3306 à 33060 et vice-versa et assurez-vous que le Unix_socket était correct. p>
La solution qui résolue mon problème changeait: p> à p > DB_CONNECTION=mysql
DB_HOST=mysql
À moins que votre nom d'hôte de votre ordinateur soit MySQL code> et que votre base de données n'écoute pas sur le réseau, cela ne fonctionnera pas.
Et êtes-vous sûr que la prise UNIX est à cet endroit? Avez-vous installé MAMP dans un emplacement non par défaut?
Oui et je sais que c'est correct.
oui à quoi? J'ose dire qu'il n'y a pas de fichier nommé
mysql.sock code> sur votre ordinateur à l'endroit spécifié. Les ordinateurs ne font pas d'erreur à ce sujet. S'il est indiqué qu'il n'y a pas de fichier là-bas, c'est parce qu'il n'y a pas de fichier là-bas. Si vous avez installé votre MAMP dans un emplacement non par défaut, vous pouvez résoudre votre problème en mettant à jour votre config avec le bon chemin avec le fichier
mysql.sock code>, mais MAMP eux-mêmes ne recommande pas d'installer leur logiciel ailleurs , parce que de nombreux problèmes tels que celui-ci se poseront.
Je sais que le chemin d'accès à Unix est correct.
D'accord. Désolé, je ne veux vraiment pas que nous sachions. Ce que j'essaie de vous dire, c'est que l'exception renvoie
Aucun fichier ou répertoire de ce type code> est pas B> Fabriquer une erreur, ce qui nous laissait deux choix, soit le fichier n'est pas où vous Ecrivez-le, ou la fonction ajoute quelque chose sur le chemin, ce qui ne fait pas de mal. Mais s'il vous plaît, s'il vous plaît, s'il vous plaît i>, s'il vous plaît b> Arrêtez de croire que l'ordinateur fait une erreur. Le fichier à la recherche n'est pas là où il est, période. Il n'y a rien d'autre à cela. Trouvez le chemin exact que la fonction tente d'inclure, et de la publier ici.