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',
);