在AppFog上通过mysql隧道运行CakePHP的MissingConnectionException

时间:2013-04-25 02:21:17

标签: php mysql cakephp appfog

当我的隧道连接(af隧道)我正在尝试运行一个cakephp控制台应用程序,它将连接到我的mysql数据库(通过隧道)。

我在我的数据库配置中有这个:

public $default = array(
    'datasource' => 'Database/Mysql',
    'persistent' => false,
    'host' => 'localhost',
    'login' => '11111111ZQyI',
    'password' => '11111111111MR',
    'database' => '111111111111115bc',
    'port' => '10000',
    'prefix' => '',
    //'encoding' => 'utf8',
);

我会收到此错误消息:

Error: exception 'MissingConnectionException' with message 
'Database connection "Mysql" is     missing, or could not be 
created.' in /.../lib/Cake/Model/Datasource/Database/Mysql.php:161
Stack trace:
#0 /..../lib/Cake/Model/Datasource/DboSource.php(262): Mysql->connect()

1 个答案:

答案 0 :(得分:2)

答案是我需要以某种方式调用mysql连接TCP而不是套接字。显然,当您使用localhost时,它会自动触发Socket连接,如果使用12.0.0.1,则会触发TCP连接。所以这就是解决方案:

public $default = array(
    'datasource' => 'Database/Mysql',
    'persistent' => false,
    'host' => '127.0.0.1',
    'login' => '11111111ZQyI',
    'password' => '11111111111MR',
    'database' => '111111111111115bc',
    'port' => '10000',
    'prefix' => '',
    //'encoding' => 'utf8',
);