Drush 无法在本地主机 MAMP 上找到 mysql

Drush cannot locate mysql on localhost MAMP

使用 drush 命令在 MAMP 中构建的本地主机上更新 Drupal 8 Core,我发现 drush 不会确认我的 mysql。

从阅读一些线程来看,这显然是由于 MAMP 的默认位置 MYSQL 位置与 drush 的期望不兼容。

我已经按照一些论坛建议进行修复,但到目前为止还没有成功。

最近的尝试给了我这个权限错误:

 [warning] The command 'mysql' is required for preflight but cannot be found. 
Please install it and retry. Drush Commandline Tool 9.2.3

其他尝试:

我遵循了 3 月 14 日在这个帖子上的建议:

https://github.com/drush-ops/drush/issues/3464

这给了我这个错误:

[info] Executing: mysql --defaults-file=/private/tmp/drush_iBYWVg --database=drupal20180405 --host=localhost --port=3306 --silent < /private/tmp/drush_7T1mwj [info] Executing: mysql --defaults-file=/private/tmp/drush_bvCyn3 --database=drupal20180405 --host=localhost --port=3306 --silent < /private/tmp/drush_a9aRha In Connection.php line 149: [PDOException (2002)] SQLSTATE[HY000] [2002] No such file or directory

我尝试的另一个潜在解决方案来自 Chrisblomm 在此线程上的回答:

Drush cannot connect to MySQL on MAMP?

不幸的是我再次触发了第一个错误:

 [warning] The command 'mysql' is required for preflight but cannot be found. 
Please install it and retry. Drush Commandline Tool 9.2.3

更新:我在这里找到了解决方案:

Andrew Patton 对此线程的评论为我解决了这个问题:

特别是他给 "define and export mysql and mysqladmin as functions" 的提示。

一旦我将他建议的代码行添加到我的 Mac 的本地文件中。bash_profile 然后它允许 drush 正确识别 mysql。

这意味着我能够使用之前触发过 drush 错误的所有我需要的 drush 命令。

Andrew Patton 在这里的评论帮我解决了这个问题: 特别是他给 "define and export mysql and mysqladmin as functions" 的建议 一旦我将它添加到我的 mac / user / .bash_profile 我的 drush 确认 mysql 并且我能够使用我需要的所有命令,这些命令以前给我 drush 错误。

我的 php 容器中也有同样的问题

 [warning] The shell command 'mysql' is required but cannot be found. Please install it and retry.

未安装 mysql 客户端,因此为了修复它,我添加了 mysql 客户端

apt-get install -y default-mysql-client