9
votes

PHP Artisan migrer avec la prise MAMP et UNIX

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 commentaires

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 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 , 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 est pas 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 , s'il vous plaît 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.


5 Réponses :


23
votes

Essayez ceci:

UNIX_SOCKET=/Applications/MAMP/tmp/mysql/mysql.sock


4 commentaires

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 à .env et cela fonctionnera



8
votes

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 xxx


0 commentaires

2
votes

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);
}


2 commentaires

Cela fonctionne, mais méfiez-vous dans le fichier .env, il doit être db_socket non unix_socket , 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.



3
votes

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', ''),


0 commentaires

-2
votes

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> xxx pré>

à p >

DB_CONNECTION=mysql
DB_HOST=mysql


1 commentaires

À moins que votre nom d'hôte de votre ordinateur soit MySQL et que votre base de données n'écoute pas sur le réseau, cela ne fonctionnera pas.