Laravel 5.7 SQLSTATE [HY000] [2002]无法建立连接

时间:2019-02-10 13:58:48

标签: php database laravel laravel-5.7

我正在使用laravel 5.7,但出现此错误。但是它对于较旧的版本工作正常。我在php 7.3。*中使用xamp。这是我的代码

.env

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3308
DB_DATABASE=project
DB_USERNAME=root
DB_PASSWORD=
DB_DEFAULT=mysql

database.php

'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3308'),
            'database' => env('DB_DATABASE', 'project'),
            'username' => env('DB_USERNAME', 'root'),
            'password' => env('DB_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'prefix_indexes' => true,
            'strict' => false,
            'engine' => null,
            'default' => env('DB_DEFAULT', 'mysql')
        ],

数据库很好,我尝试与test.php文件连接,它的连接很好,但是laravel 5.7有问题

enter image description here

3 个答案:

答案 0 :(得分:2)

此错误通常表示目标计算机可以访问,但没有在该端口上侦听。

一些要检查的东西:

  • MySQL的默认端口是3306,而不是3308。是否有意进行此更改?
  • XAMPP通常要求您手动启动数据库。在线吗?
  • 如果数据库位于本地计算机上,是否还配置为像Laravel代码一样侦听3308而不是3306?
  • 确保未缓存您的配置:php artisan config:clear

如果数据库不在本地计算机上,则很可能是导致问题的防火墙设置。

答案 1 :(得分:0)

XAMPP检查您的端口号,然后更改DB_PORT。我希望它能起作用

enter image description here

enter image description here

答案 2 :(得分:0)

经过大量关于laravel 5.7和xamp的研究,我找到了解决方案。基本上,这是文件bootstrap/cache/config.php中的缓存问题。

它正在读取此配置缓存文件,而不是我的新文件。我将其删除,但无法正常工作。我非常感谢大家。