Laradock: SQLSTATE[HY000] [2002] 运行 php artisan migrate 时出现无此类文件或目录错误

问题描述 投票:0回答:1

我在 Laravel 项目中使用 Laradock,当我运行 php artisan migrate 时,遇到以下错误:

SQLSTATE[HY000] [2002] 没有这样的文件或目录

我已经检查了我的 .env 文件和 MySQL 数据库配置,但我仍然面临这个问题。这是我的配置设置:

.env 文件:

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=laravelApp
DB_USERNAME=root
DB_PASSWORD=root

Laravel 配置在 config/database.php 中:

'mysql' => [
    'driver' => 'mysql',
    'url' => env('DB_URL'),
    'host' => env('DB_HOST', '127.0.0.1'),
    'port' => env('DB_PORT', '3306'),
    'database' => env('DB_DATABASE', 'laravel'),
    'username' => env('DB_USERNAME', 'root'),
    'password' => env('DB_PASSWORD', ''),
    //'unix_socket' => env('DB_SOCKET', ''),
    'charset' => env('DB_CHARSET', 'utf8mb4'),
    'collation' => env('DB_COLLATION', 'utf8mb4_unicode_ci'),
    'prefix' => '',
    'prefix_indexes' => true,
    'strict' => true,
    'engine' => null,
    'options' => extension_loaded('pdo_mysql') ? array_filter([
        PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
    ]) : [],
],

我尝试将 DB_HOST 更改为 127.0.0.1,但仍然收到 连接被拒绝错误。关于如何解决这个问题有什么建议吗?”

mysql laravel docker laradock
1个回答
0
投票

该问题是由于我的 .env 文件中的 DB_HOST 值设置为 localhost,而 Laradock 中的 MySQL 容器名为 mysql。将 .env 文件中的 DB_HOST 值从 localhost 更改为 mysql(这是我的 MySQL 容器的名称),解决了问题。

需要注意的是,这里的关键点是使用 Docker MySQL 容器的名称作为 .env 文件中的 DB_HOST 值。

我希望这个解决方案可以帮助其他面临类似问题的人!

© www.soinside.com 2019 - 2024. All rights reserved.