2013-04-25 24 views
2

運行的CakePHP通過MySQL的隧道,而隧道我的連接(AF隧道),我嘗試運行CakePHP的控制檯應用程序,將連接到我的mysql數據庫(通過隧道)。MissingConnectionException上AppFog

我有這個在我的數據庫配置:

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() 
+0

你問,你在同一分鐘內回答的問題...'-1 both' – 2013-04-25 02:26:30

+2

爲什麼是-1?我花了15分鐘尋找答案。我這樣做是爲了節省下一個可憐的時間浪費15分鐘的時間。我認爲在網上獲取正確的信息非常重要。就這些。 – colin 2013-05-16 20:33:20

+0

我希望我能downvote評論,因爲SamuelCook我會反對投票你的。科林是正確的,才能得到正確的信息從網絡上,不管他在一分鐘內回答它是非常重要的。在過去的20分鐘裏,我遇到了這個問題,這個答案對我有幫助。雙方+1! – mickburkejnr 2013-06-16 12:04:26

回答

2

的答案是,我需要以某種方式調用MySQL來代替連接的TCP套接字。顯然,當你使用本地主機時它會自動觸發一個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', 
);