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?

12
demandé sur SBH 2013-10-28 12:19:35

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
11
répondu Marc Juchli 2013-10-28 09:41:38

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

31
répondu izus 2014-11-03 17:18:47

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

enter image description here

13
répondu Truchainz 2016-02-24 20:15:24

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

7
répondu Ema.jar 2014-08-03 19:59:18

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...

4
répondu Kaizoku Gambare 2016-02-16 19:12:27

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.

2
répondu John the Ripper 2014-02-19 12:44:43

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).

2
répondu ChristoKiwi 2016-01-06 09:22:41

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_pathapp/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:   ~
1
répondu nifr 2013-10-28 09:40:32

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é).

1
répondu ngduflo 2016-05-18 08:09:02

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_host127.0.0.1localhost 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:

  1. modifier le paramètre database_host
  2. Modifier l'autorisation à l'intérieur du serveur de base de données
1
répondu acropia 2016-07-16 14:30:54

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

0
répondu aina 2018-02-09 19:37:42