2015-04-03 120 views
0

我目前正在CakePHP 3.0上工作,並在連接到我的數據庫時遇到問題。CakePhp 3.0:PDO問題

要恢復:

你的PHP版本5.4.16是或更高。

您的PHP版本加載了mbstring擴展。

您的PHP版本加載了openssl擴展。

您的PHP版本已加載intl擴展。

然後:

你的tmp目錄是可寫的。

您的日誌目錄是可寫的。

FileEngine正在用於核心緩存。要更改配置 編輯配置/ app.php

但是:

CakePHP是無法連接到數據庫。

到數據庫的連接不能建立:SQLSTATE [HY000] [2006] MySQL服務器已消失

我必須警告是:

警告(2):PDO :: __ construct():MySQL服務器已經消失 [CORE \ src \ Database \ Driver \ PDODriverTrait.php,第48行]警告(2): PDO :: __ construct()[pdo.construct] 包。 PID = 25748 [CORE的\ src \數據庫\驅動程序\ PDODriverTrait.php,線 48]

我PDODriverTrait.php在線48:

protected function _connect($dsn, array $config) 
{ 
    $connection = new PDO(
     $dsn, 
     $config['username'], 
     $config['password'], 
     $config['flags'] 
    ); 
    $this->connection($connection); 
    return true; 
} 

而且我app.php數據源是:

'className' => 'Cake\Database\Connection', 
    'driver' => 'Cake\Database\Driver\Mysql', 
    'persistent' => false, 
    'host' => 'localhost', 
    'port' => '81', 
    'username' => 'root', 
    'password' => '', 
    'database' => 'projetatelier', 
    'encoding' => 'utf8', 
    'timezone' => 'UTC', 
    'cacheMetadata' => true, 
    'quoteIdentifiers' => false, 

我檢查了我的PDO擴展,看起來都是正確的。

感謝

+0

嘗試刪除端口部分並檢查。什麼是$ config ['flags']? – 2015-04-03 10:22:03

+0

Marien請投票答覆也。 – 2016-02-03 07:15:09

回答

0

根據你的代碼,你看,問題是: -

  1. 無論你的MySQL正在一些其他的端口所以只是把你app.php該端口號。

  2. 或端口號需要從文件app.php中刪除。

首先嚐試刪除它並嘗試。如果不工作,然後檢查MySQL工作在哪個端口,然後將此值放在端口而不是80.