CakePHP 3.0 连接数据库失败

Posted

技术标签:

【中文标题】CakePHP 3.0 连接数据库失败【英文标题】:CakePHP 3.0 failed to connect to Database 【发布时间】:2015-07-20 22:04:27 【问题描述】:

我使用带有端口“8080”的 xampp 服务器作为 localhost,而 mysql 具有默认端口。我已经在“htdocs”文件夹内的文件夹名称“cake”中安装了“cakephp 3.0”。我已经使用 phpmyadmin 创建了数据库,并在 app.php 文件中进行了以下更改。

'Datasources' => [
        'default' => [
            'className' => 'Cake\Database\Connection',
            'driver' => 'Cake\Database\Driver\Mysql',
            'persistent' => false,
            'host' => 'localhost',
            //'port' => '8080',
            'username' => 'cakephp',
            'password' => 'rJzUvaFaXH7MPpaz',
            'database' => 'cake_bookmarks',
            'encoding' => 'utf8',
            'timezone' => 'UTC',
            'cacheMetadata' => true,
            'quoteIdentifiers' => false,

            //'init' => ['SET GLOBAL innodb_stats_on_metadata = 0'],
        ],

我尝试取消注释端口,在这种情况下服务器根本没有响应。连接数据库有什么遗漏吗?

【问题讨论】:

Datasources 数组中的端口是数据库端口,与您的Web Server 端口(8080)无关。 MySQL 的默认端口是 3306 - 如果您没有更改它,则无需在 Datasources 中设置端口。尝试运行 php web 服务器:在应用程序根目录的终端窗口中,运行“bin\cake server”。它将在您的 localhost 上启动一个服务器,侦听端口 8765。在您的浏览器中,输入“localhost:8765”并查看您的应用程序是否启动。 【参考方案1】:

尝试将'host' => 'localhost', 替换为'host' => '127.0.0.1',,看看是否有帮助。

您还可以通过指定选项 'unix_socket' => '/path/to/mysql.sock', 使用 Unix Socket 连接到 MySQL。

在 OS X 中运行的 XAMPP 上,套接字位于 /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock

【讨论】:

以上是关于CakePHP 3.0 连接数据库失败的主要内容,如果未能解决你的问题,请参考以下文章

创建与 WildFly 10 和 Jaybird 3.0 的连接失败

CakePHP 3 更新连接表中的数据

CakePHP 3 连接表关联

如何在 CakePHP 2 中为 3 个树状连接表保存数据

Cakephp mysql与远程数据库连接错误

CakePHP 3 - 使用多个数据库连接*不使用ORM *