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