web-dev-qa-db-fra.com

PDOException: SQLSTATE [HY000] [2002] Aucun fichier ou répertoire de ce type dans _registry_check_code ()

Drush fonctionne sur MAMP, PHP 5.6.6.

À l'intérieur /Volumes/Doxy/htdocs/omegadoen/sites/all/themes/omega

Je cours:

drush omega-wizard

Je reçois:

Exception non capturée supplémentaire levée lors de la gestion de l'exception.

Original

PDOException: SQLSTATE [HY000] [2002] Aucun fichier ou répertoire de ce type dans drupal_is_denied () (ligne 1917 de /Volumes/Doxy/htdocs/omegadoen/includes/bootstrap.inc).

Additionnel

PDOException: SQLSTATE [HY000] [2002] Aucun fichier ou répertoire de ce type dans _registry_check_code () (ligne 3169 de /Volumes/Doxy/htdocs/omegadoen/includes/bootstrap.inc).


La commande Drush s'est terminée anormalement en raison d'une erreur irrécupérable. [Erreur]

Et maintenant?

6
Bi Devi

Pour plus de simplicité, vérifiez drush status Avec les paramètres détaillés et de débogage:

drush -vd status

Si vous utilisez un profil différent, n'oubliez pas de l'inclure en tant que -l http://foo.

Si vous avez toujours un problème, c'est un problème avec le démarrage de votre Drupal.

Vérifiez d'abord votre connexion SQL si elle fonctionne:

drush sql-cli

Si ce n'est pas le cas, vérifiez vos informations d'identification de base de données dans votre fichier de paramètres Drupal.

Si c'est le cas, il y a un problème avec la connexion SQL via le socket.

Donc, dans MAMP, vous devez faire:

  1. Vérifiez la valeur de socket dans my.cnf (menu: Fichier/Modifier le modèle ), il est généralement défini comme suit:

    socket      = /Applications/MAMP/tmp/mysql/mysql.sock
    
  2. Vérifiez si votre MySQL peut trouver ce fichier:

    $ mysql_config --socket
    /Applications/MAMP/tmp/mysql/mysql.sock
    
  3. Vérifiez si votre PHP a la bonne configuration mysql.sock:

    $ php -i | grep mysql.default_socket
    
  4. Reliez le socket à votre /tmp Et voyez si cela aide:

    Sudo ln -s /Applications/MAMP/tmp/mysql /var/mysql
    
  5. Testez le fichier socket:

    mysql --socket=/var/mysql/mysql.sock
    
  6. Toujours le problème? Ajoutez le paramètre suivant dans votre $databases:

    $databases['default']['default'] = array(
      // ...
      'unix_socket' => '/var/mysql/mysql.sock',
    

Dépannage

  • Essayez: drush sqlq "SELECT @@version_comment LIMIT 1"
  • Essayez: drush ev "Database::getConnection('default', 'default');"
  • Essayez: mysql --socket=$(php -r 'echo ini_get("mysql.default_socket");')
  • Vérifiez les autorisations sur le socket Unix: stat $(mysql_config --socket)
  • Débogage: sous OS X avec Sudo dtruss -fn mysqld, Sous Linux avec strace
  • Déboguer avec XDebug:

    • echo '<?php xdebug_start_trace("/tmp/foo.log");' > init.php
    • drush -c init.php ev 'Database::getConnection("default", "default");'
    • ou définissez xdebug.show_exception_trace=1 dans votre xdebug.ini
  • Vérifiez les paramètres MySQL:

    • echo '<?php phpinfo();' > init.php
    • drush -c init.php ev 'Database::getConnection("default", "default");' | grep mysql
  • Exécutez: php -r "new PDO('mysql:Host=localhost;port=3306;charset=utf8;dbname=dbname', 'root', 'root');"

  • Essayez de reconstruit votre registre
23
kenorb