web-dev-qa-db-fra.com

Erreur: classe «Drush \ Sql \ Sql» introuvable

Ceci est ma première tentative d'installation de Drupal à l'aide de Composer. J'ai réussi à installer Composer et le modèle Drupal Project , qui est configuré) avec Drush. Pour installer j'utilise

composer create-project drupal-composer/drupal-project:~8.0 {dir} --stability dev --no-interaction

Ensuite, lorsque j'essaie d'installer Drupal en utilisant Drush avec

../vendor/bin/drush site-install --db-url=mysql://{username}:{password}@localhost/{database}

Je reçois cette erreur

Error: Class 'Drush\Sql\Sql' not found in /Users/.../vendor/drush/drush/src/Sql/SqlBase.php on line 81

J'ai installé Drush et Composer localement. J'ai essayé d'exiger Drush à nouveau après l'installation composer. J'ai essayé d'utiliser Drush 9.2.3. SO, si je passer par l'installation manuelle de Drupal, Drush init fonctionne, mais toute autre commande autre que la version me donne

In Connection.php line 149:
SQLSTATE[HY000] [2002] No such file or directory

J'utilise:

  • Compositeur 1.6.5
  • Drush 9.3
  • Drupal 8.4.5
4
xturgorex

Votre mot de passe contient-il un #? Essayez ce test:

<?php

function test_url($url) {
    $message = (parse_url($url) === false)?"parse_url unable to parse url: 
{$url}\n":print_r(parse_url($url),true);
    echo  $message;
}

test_url("mysql://user:password@site/database_name");
test_url("mysql://user:C0mPl3XP4ss@site/database_name");
test_url("mysql://user:Ci)(*$!@@site/database_name");
test_url("mysql://user:pass#Word@site/database_name");
?>

Le dernier exemple d'URL n'a pas été analysé. Cela semble provenir de

vendor/drush/drush/src/Sql/SqlBase.php:dbSpecFromDbUrl().

J'ai rencontré le même problème et l'ai tracé à un "#" dans mon mot de passe utilisateur MySQL. Modification du mot de passe pour supprimer le "#" et tout fonctionne.

4
James Crow

J'ai eu un problème similaire sur Windows 10. Je n'ai pas remarqué d'où venait le problème parce que j'avais Drush installé à la fois globalement et localement. Après avoir désinstallé drush globalement, j'ai remarqué que drush n'était plus trouvé. Après avoir ajouté mon drush local à mon PATH, j'ai finalement réussi à lancer la commande d'installation du site.

0
Theo Balkwill