Symfony 2 SQLSTATE [HY000] [2002] connexion refusée erreur
j'obtiens une erreur comme des opérations de base de données en utilisant Symfony2.
SQLSTATE[HY000] [2002] Connection refused
paramètres.yml
parameters:
database_driver: pdo_mysql
database_host: 127.0.0.1
database_port: '8889'
database_name: symfony
database_user: root
database_password: root
mailer_transport: smtp
mailer_host: 127.0.0.1
mailer_user: null
mailer_password: null
locale: tr
secret: ef9b4381fe75208f060b7c786951242bebcfb3c2
database_path: /private/var/mysql/mysql.sock
et console:
Kemal-Karakass-MacBook-Pro:~ kemalkarakas$ locate mysql.sock
/private/var/mysql/mysql.sock
comment résoudre l'erreur?
11 réponses
Il y a un paramètre unix_socket vous pouvez utiliser dans votre config.yml.
voir Exemple de configuration complète:
# Doctrine Configuration
doctrine:
dbal:
default_connection: default
connections:
default:
driver: %database_driver%
dbname: %database_name%
user: %database_user%
host: %database_host%
password: %database_password%
unix_socket: /tmp/mysql.sock
j'ai eu le même problème et résolu en remplaçant
database_host: 127.0.0.1
database_host: localhost
dans les paramètres.yml
espérons que cela aide
Mac OSX en utilisant Mamp Pro, ce qui a résolu le problème pour moi allait à la MySQL tab sur L'UI et en cochant l'option Autoriser l'accès réseau à MySQL
N'oubliez pas de cliquer Save mettre à jour les paramètres
j'ai eu le même problème avec MAMP car le port par défaut n'est pas 3306 mais 8889.
Vous pouvez trouver cette information dans la page de démarrage du MAMP.
Mes paramètres
parameters:
database_driver: pdo_mysql
database_host: 127.0.0.1
database_port: '8889'
database_name: symfony_blog
database_user: root
database_password: root
mailer_transport: smtp
mailer_host: 127.0.0.1
mailer_user: null
mailer_password: null
locale: en
secret: 7f03537e81f981683bc773b9ec7113ab5861adec
database_path: null
C'est un peu stupide, mais je suis arrivé sur ce post googler la même erreur, donc peut-être que cela peut aider quelqu'un.
dans le cas où vous avez cette connexion refusé erreur vérifier deux fois que votre base de données est en marche, dans mon cas j'ai tout simplement oublié d'alimenter sur MAMP...
Après avoir vu les réponses et jouer avec moi-même, j'ai compris le problème:
l'installation par défaut de LAMPP, MAMPP a ce qui suit dans le my.fichier cnf:
skip-networking
cela signifie que mysql n'écoutera pas sur TCP/IP pour que vous puissiez dire à doctrine d'essayer n'importe quel port dans le 64K et cela ne fera aucun bien jusqu'à ce que vous commentez la directive ci-dessus et que vous obteniez mysql d'écouter les ports TCP/IP.
veuillez vous assurer de redémarrer LAMPP, MAMPP ou de recharger mysql après avoir commenté l' skip-networking
la directive.
si quelqu'un est encore coincé sur cette question en utilisant un environnement virtuel, j'ai trouvé si vous essayez d'exécuter des commandes de base de données sur la machine hôte et que vous exécutez "connection refused"
message d'erreur, essayez ssh-ing dans votre ordinateur invité et exécuter les commandes directement de façon à ce que le chemin vers mysql.chaussette est correct.
(je suppose que c'est logique que le chemin relatif doit être sur l'ordinateur invité virtuel, pas la machine hôte).
configurer symfony2 / doctrine pour se connecter à MySQL en utilisant host: port
- commentaire
doctrine.dbal.path: %database_path%
app/config/config.yml
- supprimer/commenter le paramètre
database_path
app/config/parameters.yml
- vérifiez vos fichiers de configuration pour une indentation correcte
- wrap soit aucune des valeurs dans
app/config/parameters.yml
guillemets simples ou mettez tout en guillemets doubles.
après votre configuration devrait ressembler à ceci:
Paramètres
# app/config/parameters.yml
parameters:
database_driver: "pdo_mysql"
database_host: "127.0.0.1"
database_port: "8889"
database_name: "symfony"
database_user: "root"
database_password: "root"
# comment out or remove
# database_path: ~
Configuration
# app/config/config.yml
# ...
doctrine:
dbal:
driver: %database_driver%
host: %database_host%
port: %database_port%
dbname: %database_name%
user: %database_user%
password: %database_password%
charset: UTF8
# path is for pdo_sqlite: i.e. %kernel.root_dir%/data/data.db3
# comment it out !
# path: ~
tournant sur MAMP, c'est la configuration de /app/config/parameters.yml qui a fonctionné pour moi:
parameters:
database_host: '127.0.0.1'
database_port: '8889'
database_name: test
database_user: root
database_password: root
j'ai perdu pas mal de temps avec database_host: localhost
, qui n'a pas fonctionné.
Débutants Conseils:
N'oubliez pas d'enlever le point-virgule ;
activer extension=php_pdo_mysql.dll
en php.ini (dans applications/MAMP/conf/phpX.X. X-vérifiez votre version actuelle dans les paramètres MAMP)
et/ou en php.ini et/ou php.ini.par défaut dans Macintosh HD/private / etc (utilisez spotlight de recherche pour trouver ce fichier caché).
aujourd'Hui sur une nouvelle installation de Symfony3 j'ai eu le même message d'erreur:
SQLSTATE [HY000] [2002] Permission denied
Spécifications D'Installation:
- CentOS Linux 7.2.1511
- Symfony 3.1.2
- MariaDB 5.5.47
- PHP 7.0.8
une réponse antérieure d'izus a résolu le problème sur mon serveur. Il suggère de modifier le paramètre database_host
127.0.0.1
localhost
dans le Fichier de configuration Symfony app/config/parameters.yml
l'origine réelle du problème n'était pas à l'intérieur de la configuration Symfony, mais l'autorisation à l'intérieur du serveur de base de données. J'ai créé la base de données et l'autorisation pour cette base de données en exécutant les requêtes SQL suivantes:
CREATE DATABASE user CHARACTER SET utf8 COLLATE utf8_bin;
GRANT ALL PRIVILEGES ON database.* TO user@localhost IDENTIFIED BY 'password';
Cette requête implique seulement l'hôte "localhost" est autorisé. Cela ne correspond pas exactement à' 127.0.0.1'. Le serveur de base de données rejette la connexion incomming, et Symfony lance une exception et montrant ce message d'erreur.
solutions possibles à cette situation particulière:
- modifier le paramètre database_host
- Modifier l'autorisation à l'intérieur du serveur de base de données
Eu ce problème "SQLSTATE[HY000] [2002] No such file or directory" sur symfony 3.2.9 le déploiement
Je l'ai corrigé en changeant la valeur database_host de "localhost" à L'adresse IP de mon serveur sur mes paramètres.fichier yml
mais j'ai eu cette autre message d'erreur lorsque vous essayez d'exécuter la ligne de commande par SSH:
[Doctrine\DBAL\Exception\ConnectionException]
An exception occured in driver: SQLSTATE[HY000] [2002] Connection refused
je le corrige finalement en ajoutant ces 2 lignes sur ma configuration.fichier yml dans la Doctrine de section de configuration :
unix_socket: /var/lib/mysql/mysql.sock
server_version: '5.5'
toute ma doctrine finale la configuration est comme ceci:
doctrine:
dbal:
driver: pdo_mysql
host: '%database_host%'
port: '%database_port%'
dbname: '%database_name%'
user: '%database_user%'
password: '%database_password%'
unix_socket: /var/lib/mysql/mysql.sock
server_version: '5.5'
charset: UTF8
j'espère que cela aide