连接到运行MariaDB的另一个docker容器时,MYSQLI连接被拒绝

Pie*_*nni 1 php mysqli mariadb docker docker-compose

我开始弄脏Docker并且我试图让我的PHP应用程序在带有nginx的docker容器中运行,以连接到运行MariaDB的另一个容器中运行的数据库.

当我运行容器时,我可以从我的计算机(使用Sequel Pro)连接到数据库没有任何问题,但是当我尝试从运行在nginx容器中的PHP应用程序连接到数据库时,我得到以下mysqli错误:

警告:mysqli_connect():( HY000/2002):第7行的> /app/web/php/db-config.php中的连接被拒绝无法连接到数据库,因错误而死亡:

发生错误的db-config.php如下:

    define('DB_HOST', '0.0.0.0:3306');
    define('DB_NAME', 'Jumpooling');
    define('DB_USER', 'root');
    define('DB_PASSWORD', 'root');

    $con=mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME) or die('Failed to connect to the database, died with error:');
Run Code Online (Sandbox Code Playgroud)

所有docker-compose.yml文件内容都在此存储库中.

我错过了什么?

Pie*_*nni 12

我设法在这个答案中找到了解决方案.

问题是主机不是被定义为IP地址,而是具有在docker-compose.yml文件中给出的链接名称,即db.

决赛db-config.php是这样的:

define('DB_HOST', 'db');
define('DB_NAME', 'Jumpooling');
define('DB_USER', 'root');
define('DB_PASSWORD', 'root');

$con=mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME, 3306) or die('Failed to connect to the database, died with error:');
Run Code Online (Sandbox Code Playgroud)

  • 选择此答案作为最佳答案。不要害羞 (2认同)