原则2命令行工具;MAMP和mysql.sock



我从《疯狂不准确》中抓取了CI2/Doctrine2。我正试着开始使用它,但在我真正开始使用它之前,我想确保一切正常。但是,当我尝试命令行工具时,我遇到了以下错误:

$ ./doctrine orm:schema-tool:create
ATTENTION: This operation should not be executed in a production environment.
Creating database schema...
Warning: PDO::__construct(): [2002] Socket operation on non-socket (trying to connect via unix:///var/mysql/mysql.sock) in /Users/joris/Desktop/ci2_starter/application/libraries/Doctrine/DBAL/Driver/PDOConnection.php on line 36

  [PDOException]                                         
  SQLSTATE[HY000] [2002] Socket operation on non-socket  

orm:schema-tool:create [--dump-sql]

我在一个干净安装的MAMP Pro 2.0.1上运行这个;我真的不知道该怎么做来修复这个错误…我对MySQL的内部(背景)工作不是很了解。有人能帮我澄清一下吗?非常感谢。

更新:

MacBook-Pro-van-Joris-Ooms:~ joris$ sudo find / -name 'mysql.sock'
Password:
/Applications/MAMP/tmp/mysql/mysql.sock
find: /dev/fd/3: Not a directory
find: /dev/fd/4: Not a directory
/private/var/mysql/mysql.sock
/private/var/mysql/mysql.sock/mysql.sock

MAMP使用自己的mysql套接字,而CLi使用/var/mysql/mysql.sock中的默认套接字。这可能意味着您正在运行错误的PHP版本(不是MAMP版本,而是默认的MAC OS X版本)。这不是什么大问题,因为它可以处理你的条令命令行问题。所以你有几个选择:

  1. 尝试使用MAMP php版本启动CLi工具,将MAC OS X php版本的Path作为前缀,即

    /Applications/MAMP/bin/php5.3/bin/php ./doctrine form:schema-tool:create

  2. 从/var/mysql/mysql建立一个链接到实际的Socket文件,它应该在/Applications/MAMP//tmp/mysql/mysql.sock因此,当您进入终端时,您的MAMP正在运行一个类型(您将被要求输入密码):

    sudo ln -s/Applications/MAMP//tmp/mysql/mysql。袜子/var/mysql/mysql.sock

  3. 查找所有出现的"/Applications/MAMP//tmp/mysql/mysql. sh "在您的任何MAMP配置文件中,将其更改为/var/mysql/mysql所以你实际上使用MySQL Socket的默认地址。但是,我从来没有测试过这是否有效。

相关内容

最新更新