【问题标题】:CakePhp 3.0 : PDO issuesCakePhp 3.0:PDO 问题
【发布时间】:2015-06-08 10:15:20
【问题描述】:

我目前正在使用 CakePHP 3.0,在连接到我的数据库时遇到了问题。

继续:

您的 PHP 版本是 5.4.16 或更高版本。

您的 PHP 版本已加载 mbstring 扩展。

您的 PHP 版本已加载 openssl 扩展。

您的 PHP 版本已加载 intl 扩展。

然后:

您的 tmp 目录是可写的。

您的日志目录是可写的。

FileEngine 用于核心缓存。更改配置 编辑 config/app.php

但是:

CakePHP 无法连接到数据库。

无法建立与数据库的连接:SQLSTATE[HY000] [2006] MySQL 服务器已消失

我的警告是:

警告 (2): PDO::__construct(): MySQL server has gone away [CORE\src\Database\Driver\PDODriverTrait.php,第 48 行] 警告 (2): PDO::__construct() [pdo.construct]:读取问候语时出错 包。 PID=25748 [CORE\src\Database\Driver\PDODriverTrait.php,行 48]

我在第 48 行的 PDODriverTrait.php 是:

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 扩展,一切似乎都是正确的。

谢谢

【问题讨论】:

  • 尝试移除端口部分并检查。还有什么是 $config['flags']?
  • Marien 也请为答案投票。

标签: php mysql cakephp pdo


【解决方案1】:

根据您显示的代码,问题是:-

  1. 您的 MySQL 正在使用其他端口,因此只需将该端口号放在您的 app.php 中即可。

  2. 或者端口号需要从文件app.php中去掉。

首先尝试删除它并尝试。如果不工作,则检查 MySQL 工作的端口,然后将此值放入端口而不是 80。

【讨论】:

    猜你喜欢
    • 2016-07-18
    • 1970-01-01
    • 1970-01-01
    • 2014-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-13
    • 2012-11-10
    相关资源
    最近更新 更多