MissingConnectionException запускает CakePHP через туннель MySQL на AppFog

В то время как мой туннель подключен (af tunnel) я пытаюсь запустить консольное приложение 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 ответ

Решение

Ответ был таков: мне нужно было как-то вызывать 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',
);
Другие вопросы по тегам