![](/img/trans.png)
[英]Problems connecting to Mysql on a docker container via PDO, but command line works
[英]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.