Bonjour,

Je souhaite vraiment me mettre à un framework PHP et j'ai choisit de commencer sérieusement avec Laravel. Je rencontre néanmoins un soucis. Lors de la migration d'une table que j'ai crée, je contre l'erreur suivante sur mon terminal :

[PDOException]                             
SQLSTATE[HY000] [2002] Connection refused

Donc mon premier réflexe a été de bien vérifier les valeurs de connexion à la DB mais elles ont l'air d'être bonnes.

'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', 'localhost'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'laravel'),
            'username' => env('DB_USERNAME', 'root'),
            'password' => env('DB_PASSWORD', 'root'),
            'charset' => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix' => '',
            'strict' => false,
            'engine' => null,
        ],

Donc si vous auriez des idées ? ><

Merci !

10 réponses


Spiker
Réponse acceptée

Hello,

Dans ton fichier de config (le tableau mysql) rajoute:

'unix_socket'   => getenv('UNIX_SOCKET'),

et dans ton .env:

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

et ça devrait marcher ;)

Salut,

Ton mdp n'est visiblement pas bon.
As-tu essayé de te connecter à MySQL via le CLI (http://dev.mysql.com/doc/refman/5.7/en/connecting.html) ?

mysql -u USERNAME -pPASSWORD -h HOSTNAMEORIP DATABASENAME
Shadows
Auteur

Hello. Alors j'ai pas de commande reconnu pour MySQL sur mon terminal. D'ailleurs je ne comprends pas trop pourquoi. Je suis sur OSX pour info et mon .bash_profile a cette ligne :

export PATH=/Applications/MAMP/Library/bin:$PATH

Salut @Shadows,

Les identifiants de connexion se trouve dans le .env de ton projet (à la racine).
Le fichier que tu as montré permet de mettre des valeurs par défaut si il ne les trouve pas dans le .env.

Vérifie ces valeurs et tiens nous au courant ;)

Shadows
Auteur

Salut,

D'accord, je me base sur le tuto de Grafikart d'une plus vielle version de Laravel du coup je me suis fait avoir. Néanmoins, j'ai modifié le .env :

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=root

Et toujours le même soucis. Pareil en mettant 127.0.0.1 à la place de localhost.

Essaye d'éditer le pass de MySQL.
Tu as essayé en remplacant ton pass actuel par rien dans la config ?

Shadows
Auteur

Alors il se passe un truc bizarre. Quand j'ai

DB_PASSWORD=

j'ai ceci quand je fais un migrate :

[PDOException]                                    
  SQLSTATE[HY000] [2002] No such file or directory

et quand je mets

DB_PASSWORD=root

j'ai

[PDOException]                             
  SQLSTATE[HY000] [2002] Connection refused 

Tu developpe sous une machine virtuelle ou un Wamp ?

Shadows
Auteur

Sous MAMP avec le port 3306.

Shadows
Auteur

Merci Spiker ! Effectivement la migration a fonctionné. Du coup, c'est quoi cette histoire de socket ?