无法使用 cakephp 和 wampserver 连接到数据库

cant connect to database using cakephp and wampserver

我正在使用 64 位 WampServer 和 cakephp 3.2 以及 win10。我有一台新电脑,需要转移一个cakephp项目。有一个拥有所有权限的用户 Root,没有密码和数据库 'aptutori_apt4' n 存在于 phpmyadmin

如果不需要数据库,项目就会加载,但这是我得到的 错误:sqlstate[hy000] [1049] 未知数据库 'aptutori_apt4' 我无法连接数据库!

主机设置有误吗?

 'Datasources' => [
        'default' => [
            'className' => 'Cake\Database\Connection',
            'driver' => 'Cake\Database\Driver\Mysql',
            'persistent' => false,
            'host' => 'localhost',
          
            //'port' => 'non_standard_port_number',
            'username' => 'root',
            'password' => '',
            'database' => 'aptutori_apt4',
            'encoding' => 'utf8',
            'timezone' => '+11:00',
            'flags' => [],
            'cacheMetadata' => true,
            'log' => false,

它与我的另一台计算机在 phpmyadmin 和 app.php 上的设置相同。新计算机显示在数据库选项卡下的 phpmyadmin 上 Server:Mysql:3308

我认为你的问题是最近 mariaDB 成为 WAMPServer 中的默认数据库,因此 mariaDB 使用端口 3306(几乎所有东西的默认值 MySQL)并且 MySQL 正在监听端口 3308

但是,如果您想使用 MySQL,简单的解决方案是交换 WAMPServer 中的默认数据库,当然,WAMPManager 菜单上有一个工具。

Right-click Wampmanager icon -> Tools -> Invert default DBMS MariaDB <-> MySQL

现在 MySQL 将使用端口 3306,mariaDB 将使用端口 3307。

现在你的蛋糕配置应该可以工作并在端口 3306 上找到正确的 DBMS,因此你在那里创建的数据库。

这是最安全的解决方案,因为当您将代码移动到实时服务器时,它几乎肯定会将其 MySQL/mariaDB 配置为使用端口 3306,您无需更改配置中的任何内容。

或者

你可以把 MySQL 正在侦听的端口号放在这个参数中

'port' => '3308',

但是当站点移动到实时服务器时,您几乎肯定必须更改此设置,然后您开发的代码和您的实时代码将有所不同,除非您记得第一次后不要传输此文件。

哦,记住你可以在默认数据库中撤销这个更改,只需返回菜单,你上次使用的菜单应该说

Right-click Wampmanager icon -> Tools -> Invert default DBMS MySQL <-> MariaDB

这样做,您将使用端口 3306 返回 mariaDB