cakephp-3.0 - SQLSTATE HY000 2002在运行bake命令时

标签 cakephp-3.0

我在运行bake命令时遇到问题。我认为它与mysql有关,但我在Stackoverflow上找不到此错误的任何解决方案。
这是我的app.php:

'Datasources' => [
        'default' => [
            'className' => 'Cake\Database\Connection',
            'driver' => 'Cake\Database\Driver\Mysql',
            'persistent' => false,
            'host' => 'localhost',

            //'port' => 'nonstandard_port_number',
            'username' => 'root',
            'password' => 'root',
            'database' => 'laboiterose',
            'encoding' => 'utf8',
            'timezone' => 'UTC',
            'cacheMetadata' => true,

请帮助,我得到的错误是:
Exception: SQLSTATE[HY000] [2002] No such file or directory in [/Applications/MAMP/htdocs/my_db/vendor/cakephp/cakephp/src/Database/Driver/PDODriverTrait.php, line 48]
2015-06-19 14:35:48 Error: [PDOException] SQLSTATE[HY000] [2002] No such file or directory
Stack Trace:
0 /Applications/MAMP/htdocs/my_db/vendor/cakephp/cakephp/src/Database/Driver/PDODriverTrait.php(48): PDO->__construct('mysql:host=loca...', 'root', 'root', Array)
1 /Applications/MAMP/htdocs/my_db/vendor/cakephp/cakephp/src/Database/Driver/Mysql.php(89): Cake\Database\Driver\Mysql->_connect('mysql:host=loca...', Array)
2 /Applications/MAMP/htdocs/my_db/vendor/cakephp/cakephp/src/Database/Schema/BaseSchema.php(46): Cake\Database\Driver\Mysql->connect()
3 /Applications/MAMP/htdocs/my_db/vendor/cakephp/cakephp/src/Database/Dialect/MysqlDialectTrait.php(62): Cake\Database\Schema\BaseSchema->__construct(Object(Cake\Database\Driver\Mysql))
4 /Applications/MAMP/htdocs/my_db/vendor/cakephp/cakephp/src/Database/Schema/Collection.php(52): Cake\Database\Driver\Mysql->schemaDialect()
5 /Applications/MAMP/htdocs/my_db/vendor/cakephp/cakephp/src/Database/Schema/CachedCollection.php(44): Cake\Database\Schema\Collection->__construct(Object(Cake\Database\Connection))
6 /Applications/MAMP/htdocs/my_db/vendor/cakephp/cakephp/src/Database/Connection.php(319): Cake\Database\Schema\CachedCollection->__construct(Object(Cake\Database\Connection), true)
7 /Applications/MAMP/htdocs/my_db/vendor/cakephp/bake/src/Shell/Task/ModelTask.php(806): Cake\Database\Connection->schemaCollection()
8 /Applications/MAMP/htdocs/my_db/vendor/cakephp/bake/src/Shell/Task/ModelTask.php(782): Bake\Shell\Task\ModelTask->_getAllTables()
9 /Applications/MAMP/htdocs/my_db/vendor/cakephp/bake/src/Shell/Task/ModelTask.php(186): Bake\Shell\Task\ModelTask->listAll()
10 /Applications/MAMP/htdocs/my_db/vendor/cakephp/bake/src/Shell/Task/ModelTask.php(109): Bake\Shell\Task\ModelTask->getAssociations(Object(Cake\ORM\Table))
11 /Applications/MAMP/htdocs/my_db/vendor/cakephp/bake/src/Shell/Task/ModelTask.php(95): Bake\Shell\Task\ModelTask->bake('Users')
12 /Applications/MAMP/htdocs/my_db/vendor/cakephp/bake/src/Shell/BakeShell.php(241): Bake\Shell\Task\ModelTask->main('Users')
13 [internal function]: Bake\Shell\BakeShell->all('users')
14 /Applications/MAMP/htdocs/my_db/vendor/cakephp/cakephp/src/Console/Shell.php(380): call_user_func_array(Array, Array)
15 /Applications/MAMP/htdocs/my_db/vendor/cakephp/cakephp/src/Console/ShellDispatcher.php(204): Cake\Console\Shell->runCommand(Array, true)
16 /Applications/MAMP/htdocs/my_db/vendor/cakephp/cakephp/src/Console/ShellDispatcher.php(175): Cake\Console\ShellDispatcher->_dispatch()
17 /Applications/MAMP/htdocs/my_db/vendor/cakephp/cakephp/src/Console/ShellDispatcher.php(126): Cake\Console\ShellDispatcher->dispatch()
18 /Applications/MAMP/htdocs/my_db/bin/cake.php(33): Cake\Console\ShellDispatcher::run(Array)
19 {main}

最佳答案

首先,让我们找出我们正在运行的PHP版本(以了解它是否为默认版本)。

为此,在终端内,触发以下命令:

which php

这应该输出Mac OS X预先安装的默认PHP安装路径,默认情况下必须是(假设您之前没有更改过):
/usr/bin/php

现在,我们只需要将其交换到随MAMP一起安装的PHP,它位于/Applications/MAMP/bin/php/php7.0.0/bin(MAMP 3.5)

为此,我们需要编辑.bash_profile并将PHP的MAMP版本添加到PATH变量中。
请遵循以下简单步骤:

在终端中,运行vim ~/.bash_profile
键入i,然后将以下内容粘贴到文件顶部:
export PATH=/Applications/MAMP/bin/php/php5.4.10/bin:$PATH

按下ESC,输入:wq,然后按下Enter

在终端中,运行source ~/.bash_profile
在终端中,再次键入which php并查找更新的字符串。如果一切成功,它应该将新路径输出到MAMP PHP安装。

如果它没有输出正确的路径,请尝试关闭终端窗口(完全退出)并再次打开,它应该应用更改(简称“重新启动”)。

关于cakephp-3.0 - SQLSTATE HY000 2002在运行bake命令时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30941506/

相关文章:

cakephp - 如何查看 debug false 的错误?

cakephp-3.0 - 错误 : Class 'App\Model\Entity\DefaultPasswordHasher' not found

cakephp-3.0 - CakePHP 3.x 更新多行

cakephp 3 用于关联数据的 queryBuilder

php - 在 Cakephp 中将两个模型之间的表链接在一起

php - Cakephp3 ElasticSearch查询Q

session - 如何在Cakephp 3.0中读写Session

css - Cakephp 3 侧导航调整大小

php - 如何在 Cakephp 3 中创建按字段集分组的多个复选框

php - 如何在Cakephp3复合主键中插入空记录?