Macos Drush无法在MAMP上连接到MySQL?
我第一次试着为Drush做准备。我用的是马普和山狮。当我在终端中输入'drush'时,我会得到一个命令列表,因此它似乎安装正常 我在MAMP中更改了默认的web目录文件夹。我在web目录的文件夹中有许多Drupal站点。因此,一个站点的url是Macos Drush无法在MAMP上连接到MySQL?,macos,drupal,mamp,drush,Macos,Drupal,Mamp,Drush,我第一次试着为Drush做准备。我用的是马普和山狮。当我在终端中输入'drush'时,我会得到一个命令列表,因此它似乎安装正常 我在MAMP中更改了默认的web目录文件夹。我在web目录的文件夹中有许多Drupal站点。因此,一个站点的url是http://localhost:8888/omega/omegav3/另一个是http://localhost:8888/omega/omegav4/ 通过导航到终端中的site文件夹,我可以运行Drush命令,但是会出现错误。当我下载视图时,它确实正确
http://localhost:8888/omega/omegav3/
另一个是http://localhost:8888/omega/omegav4/
通过导航到终端中的site文件夹,我可以运行Drush命令,但是会出现错误。当我下载视图时,它确实正确地将模块下载到我的sites/all/modules文件夹中,但是它给了我一些错误。当我尝试启用该模块时,它会给我更多错误,并且无法启用该模块
unknown:omegav3 MYUSERNAME$ cd /Users/MYUSERNAME/Dropbox/sites/omega/omegav3
unknown:omegav3 MYUSERNAME$ drush dl views
PDO::__construct(): [2002] No such file or directory (trying to connect via [warning]
unix:///var/mysql/mysql.sock) environment.inc:523
Project views (7.x-3.7) downloaded to sites/all/modules/views. [success]
Project views contains 2 modules: views, views_ui.
unknown:omegav3 MYUSERNAME$
unknown:omegav3 MYUSERNAME$ drush en views
PDO::__construct(): [2002] No such file or directory (trying to connect via [warning]
unix:///var/mysql/mysql.sock) environment.inc:523
Command pm-enable needs a higher bootstrap level to run - you will need to invoke [error]
drush from a more functional Drupal environment to run this command.
The drush command 'en views' could not be executed. [error]
Drush was not able to start (bootstrap) the Drupal database. [error]
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.23
Site URI : http://default
Database driver : mysql
Database username : root
Database name : omegav3
Default theme : garland
Administration theme : garland
PHP executable : /usr/bin/php
PHP configuration :
PHP OS : Darwin
Drush version : 6.1.0
Drush configuration :
Drush alias files :
Drupal root : /Users/MYUSERNAME/Dropbox/sites/omega/omegav3
Site path : sites/default
File directory path : sites/default/files
unknown:omegav3 MYUSERNAME$
这似乎是Drush和MySQL的问题,但我不知道如何解决这个问题。我对命令行非常陌生,以前从未安装过像Drush这样的东西,所以我真的很挣扎 让我们先说我对德鲁什一点也不熟悉。但从MAMP的角度来看,我想我知道这里发生了什么 线路
PDO::_construct():[2002]没有这样的文件或目录(试图通过[warning]连接)
unix:///var/mysql/mysql.sock)environment.inc:523
说明了一切
默认情况下,MAMP在/Applications/MAMP/tmp/MySQL/MySQL.sock
中创建MySQL套接字,如MAMP启动页面所述。然而,Drush希望套接字位于var/mysql/mysql.sock
有两种方法可以解决这个问题
/Applications/MAMP/bin/startMysql.sh
,
将--socket=/Applications/MAMP/tmp/mysql/mysql.sock
更改为--socket=/var/mysql/mysql.sock
。还有,别忘了编辑stopMysql.sh。这告诉MAMP在下次启动Mysql服务器时将套接字存储在其他位置/var/mysql/mysql.sock
到/Applications/MAMP/tmp/mysql/mysql.sock
的符号链接,有关符号链接的更多信息,请参阅文章。要做到这一点,需要运行MAMP,因为套接字文件是动态创建的祝你好运 作为回答#1的另一种选择,我建议您将命令行MySQL改为使用MAMP——这确保了当您从命令行访问MySQL时,它也能正常工作。编辑~/.bash_配置文件并添加以下行:
alias mysql='/Applications/MAMP/Library/bin/mysql'
这对我有用
sudomkdir/var/mysql
sudo ln-s/Applications/MAMP/tmp/mysql/mysql.sock/var/mysql/mysql.sock我也遇到了同样的问题-解决这个问题的方法是将settings.php中的数据库主机从“localhost”改为“127.0.0.1”。对我来说,mysql bin不存在
sudo ln -s /Applications/MAMP/Library/bin/mysql /usr/bin/mysql
为我修正了它。这应该被视为@chrisblomm答案的补充,而不是“替代品”。这是一个好主意,但并不能解决问题-至少对我来说不是这样。这是可行的,但对于El Capitan mac osx或更高版本,这应该是
sudo ln-s/Applications/MAMP/Library/bin/mysql/usr/local/bin/mysql
,而且我还必须在Chrisblomm答案sudo ln-s/Applications/MAMP/tmp/mysql/mysql.sock/var/mysql/mysql.sock中做sock符号链接