繁体   English   中英

Laravel 未从 Docker 容器连接到 MySQL 但 Z92A19290E06D1C230E74A9C83C47

[英]Laravel is not connecting to MySQL from Docker container but PDO is

我有一个 docker 容器运行一个 Laravel 7.0 和 MariaDB 10.3.23 项目触发异常:

Illuminate\Database\QueryException
SQLSTATE[HY000] [2002] Connection refused (SQL: select * from `table` where `id` = 1)

每当我尝试运行任何 Eloquent 代码时!

但奇怪的是,如果在任何 controller 内我运行任何 SQL:

$config = config('database.connections.mysql'); // I used like so to ensure it's taken from configs!
try {
    $dbh = new \PDO('mysql:host=' . $config['host'] . ';dbname=' . $config['database'], $config['username'], $config['password']);
    foreach ($dbh->query('SELECT * from table LIMIT 10') as $row) {
        print_r($row);
    }
    $dbh = null;
} catch (\PDOException $e) {
    print "Error!: " . $e->getMessage() . "<br/>";
    die();
}

它打印出正确的输出!

以防万一,my.env 文件应该是正确的,因为它适用于 PDO:

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3036
DB_DATABASE=app
DB_USERNAME=app
DB_PASSWORD=secret

我已经清理了所有配置:

docker exec -it php-app php artisan optimize:clear

并且没有错误!

我认为我遗漏的东西应该很明显,否则是一个很奇怪的错误!

提前致谢!

正如@aynber 在评论中所观察到的。 我在港口有一个错字。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM