gpt4 book ai didi

php - Docker MySQL mysqli::real_connect():(HY000/2002):连接被拒绝

转载 作者:行者123 更新时间:2023-11-29 15:19:29 26 4
gpt4 key购买 nike

我是 docker/docker-compose 的新手。我正在尝试连接 2 个容器,即 CodeIgniter 应用程序和 MySQL。我似乎无法解决我的网络应用程序上的 'mysqli::real_connect(): (HY000/2002): 连接被拒绝' 问题。我能够从容器内部 ping 到另一个容器,反之亦然。

这是我的docker-compose.yml文件:

version: '3'

services:

web:
container_name: ciblog
build: .
links:
- db
depends_on:
- db
ports:
- '80:80'
volumes:
- .:/var/www/html/

db:
container_name: mysql
image: mysql:latest
ports:
- '3306:3306'
environment:
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
MYSQL_USER: root
MYSQL_DATABASE: ciblog
volumes:
- ./assets/sql/ciblog.sql:/docker-entrypoint-initdb.d/ciblog.sql

Dockerfile:

FROM php:7.0-apache
RUN apt-get update && \
apt-get install -y libfreetype6-dev libjpeg62-turbo-dev && \
docker-php-ext-install mysqli && \
docker-php-ext-install mbstring && \
docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \
docker-php-ext-install gd
RUN a2enmod rewrite
RUN service apache2 restart

这是我的database.php配置:

$active_group = 'default';
$query_builder = TRUE;

$db['default'] = array(
'dsn' => '',
'dbport' => '3306',
'hostname' => 'db',
'username' => 'root',
'password' => '',
'database' => 'ciblog',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => FALSE,
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);

有人可以帮我找出问题所在吗?先感谢您。如果您想查看这些文件,这是我的 GitHub 存储库:https://github.com/josephsim/docker-ciblog

最佳答案

在基于 Docker Compose 的设置中,您可以使用服务名称作为主机名。在您的示例中,设置

'hostname' => 'db'

Networking in Compose对此进行了更详细的讨论。

Docker 容器没有一致的 IP 地址,手动查找它们通常没有用。在现代 Docker 中,您也不需要 links: 并且删除该行不会有害。

关于php - Docker MySQL mysqli::real_connect():(HY000/2002):连接被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59462961/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com