【发布时间】:2021-05-25 08:02:11
【问题描述】:
所以,我正在尝试从我的网络服务器容器连接到我的数据库容器。我目前在我的 PHP 框架中使用 Codeignter 4。就不同容器之间的通信而言,一切都很顺利,因为该容器位于相同的网络中。在 webserver 容器中,我尝试从数据库容器 ping 到数据库容器没有问题,所有端口都可以访问,因为我可以连接 PHPMyAdmin,它在他们自己的依偎小容器中并毫无问题地连接到我的数据库容器。
这是回溯
SYSTEMPATH/Database/BaseConnection.php : 618 — CodeIgniter\Database\BaseConnection->initialize ()
我试图从我的控制器中进行 DD,希望覆盖任何返回视图
$db = \Config\Database::connect();
$apakek = $db->query("SELECT * FROM student_details_dummy");
dd($apakek);
这是我在 App\Database.php 中的数据库数组
public $default = [
'DSN' => '',
'hostname' => '172.21.0.4',
'username' => 'kr_rw',
'password' => 'MrSLwwZvwC1KCRm6',
'database' => 'kr_main',
'DBDriver' => 'MySQLi',
'DBPrefix' => '',
'pConnect' => false,
'DBDebug' => (ENVIRONMENT !== 'development'),
'cacheOn' => false,
'cacheDir' => '',
'charset' => 'utf8',
'DBCollat' => 'utf8_general_ci',
'swapPre' => '',
'encrypt' => false,
'compress' => false,
'strictOn' => false,
'failover' => [],
'port' => 21236,
];
我已经尝试使用主机名 db_mysql 可以使用相应的端口进行 ping 操作,甚至可以检查 canyouseeme.org 上的开放端口是否返回正常。
我应该如何解决这个问题?
PS:所有必要的扩展都已安装并启用,包括 php_mysqli php_mbstring php_pdo 如有遗漏请指出。
【问题讨论】:
-
在你尝试的主机名可能是 172.21.0.4:3306
标签: php mysql docker codeigniter codeigniter-4