2015-04-03 79 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.