首页 > 解决方案 > CakePHP:数据库连接“Mysql”丢失,或无法创建

问题描述

在尝试连接到我的旧版 CakePHP 应用程序时,突然出现以下错误:

Fatal error: Uncaught exception 'MissingConnectionException' with message 'Database connection "Mysql" is missing, or could not be created.' 
in /myapproot/lib/Cake/Model/Datasource/DboSource.php:239 
Stack trace: #0 /myapproot/lib/Cake/Model/ConnectionManager.php(101):
DboSource->__construct(Array) #1 /myapproot/lib/Cake/Model/Model.php(3260):
ConnectionManager::getDataSource('default') #2 
/myapproot/lib/Cake/Model/Model.php(1223): Model->getDataSource() #3 
/myapproot/lib/Cake/Model/Model.php(1396): Model->schema() #4 
/myapproot/app/Lib/Log/Engine/DatabaseLogger.php(14): Model->create() #5 
/myapproot/lib/Cake/Log/CakeLog.php(204): DatabaseLogger->write('error', 
'[MissingConnect...') #6 /myapproot/lib/Cake/Error/ErrorHandler.php(118): 
CakeLog::write(3, '[MissingConnect...') #7 [internal function]: 
ErrorHandler::handleException(Object(M 
in /myapproot/lib/Cake/Model/Datasource/DboSource.php on line 239

该应用程序在上周五运行良好,据我所知,服务器没有任何配置更改。我的网站的错误日志显示这是从今天早上开始的。

这是我的 database.php 文件的相关部分。同样,在过去的几天里,这些都没有改变:

public $default = array(
            'datasource' => 'Database/Mysql',
            'persistent' => false,
            'host' => 'localhost',
            'login' => 'user',
            'password' => 'pass',
            'database' => 'nc_live2',
            'prefix' => '',
            //'encoding' => 'utf8',
    );
}

我尝试unix_socket在 database.php 中指定,但无济于事。我也尝试将“localhost”更改为“127.0.0.1”。没有喜悦。当我指定端口时,也没有任何变化。

我完全困惑为什么这个问题会突然出现。

我在 CentOS 7 上运行 CakePHP 2.8,完全打了补丁。MariaDB 版本 10.0.36

更新:这是一些 netstat 输出,显示 mysqld 仅侦听 IPV6 连接:

tcp6       0      0 :::3306                 :::*                    LISTEN      2108/mysqld

即使手动将绑定设置为 0.0.0.0,仍然没有乐趣。这让 3306 在 IPV4 上监听,但它并没有解决我的问题。

标签: phpmysqlcakephp

解决方案


推荐阅读