1

The following problem occurs when running certain Drush commands, such as drush en features which outputs:

Command pm-enable needs a higher bootstrap level to run - you will need to invoke drush from a more functional Drupal environment to run this command.
The drush command 'en features' could not be executed.
Drush was not able to start (bootstrap) the Drupal database.
Hint: This may occur when Drush is trying to:

  • bootstrap a site that has not been installed or does not have a configured database. In this case you can select another site with a working database setup by specifying the URI to use with the --uri parameter on the command line. See drush topic docs-aliases for details.
  • connect the database through a socket. The socket file may be wrong or the php-cli may have no access to it in a jailed shell. See http://drupal.org/node/1428638 for details.

Drush was attempting to connect to:

Drupal version: 7.58
Site URI: http://default
Database driver: mysql
Database hostname: mysql
Database port: Database username: default
Database name: default
PHP executable: /usr/bin/php PHP configuration: /etc/php/7.2/cli/php.ini
PHP OS: Linux
Drush script: /var/www/vendor/drush/drush/drush.php
Drush version: 8.1.17
Drush temp directory: /tmp
Drush configuration:
Drush alias files:
Drupal root: /var/www
Drupal Settings File: sites/default/settings.php
Site path: sites/default

This problem has been reported previously, but in different contexts, not in the specific setup I am working with, which consists of separate docker containers on a linux hosting server.

  • Apache 2
  • ElasticSearch
  • Workspace
  • PHP
  • MySQL

All the docker containers are running, as well as the (development) website that is built with drupal, which does connect to the database. Drush had previously been used for setting things up, but something seems to have broken during the development process. Drush had been added to the project using composer, as suggested on Install a site-local Drush and Drush Launcher.

The error seems independent of the directory where the command is executed. Moreover, the settings.php file exists at the path mentioned in the output above and contains the correct database configuration.

Finally, drush sql-cli returns the following message.

sh: 1: mysql: not found
SQL client error occurred.

Do you have any idea on what the problem might be?

  • Have you installed a MySQL client in the container you are running Drush from? – leymannx Sep 13 '18 at 22:57
  • leymannx is probably right. In addition to the "mysql-server" (or "mariadb-server") package you need "mysql-client" ("mariadb-client") or whatever it is called in the Linux distribution (?) you are running in your container. Next time remember to use the -d option of drush to get much more info. – hansfn Sep 14 '18 at 7:14
  • Right, that was the issue! It works now, after having installed mysql-client in the workspace container. Thanks! – aib-dit Sep 14 '18 at 8:13
0

Ok, this is solved now, thanks to leymannx and hansfn. I had to also install mysql-client in the workspace container, where drush was being executed from, in addition to the mysql-server running in its own container; mysql-client must have previously been present in the workspace container for a different reason, but some containers were stopped and restarted at some point, so any container-specific installations must have disappeared.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.