我是 docker 新手,并尝试在我的机器上本地的 docker 容器上部署我的脚本。但问题是我无法连接到我的数据库,每当我查询数据库时,我都会收到错误
<块引用>mysqli::real_connect(): (HY000/2002): 连接被拒绝
我已尝试将 hostname => 'localhost'
替换为 127.0.0.1:3306
的解决方案,正如我在 docker ps 服务中看到的那样,但我无法连接。
Docker Compose 文件:
version: '3'
services:
myapp:
image: 'bitnami/codeigniter:3'
ports:
- '8000:8000'
volumes:
- '.:/app'
mariadb:
image: 'bitnami/mariadb:10.3'
environment:
- ALLOW_EMPTY_PASSWORD=yes
phpmyadmin:
image: phpmyadmin/phpmyadmin
restart: always
ports:
- 8080:80
volumes:
- /sessions
environment:
PMA_HOST: mariadb
我也尝试升级mariadb:latest,但没有成功。
Database.php
$db['default'] = array(
'dsn' => '',
'hostname' => '127.0.0.1:3306',
'username' => 'root',
'password' => '',
'database' => 'notification_task',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
已编辑:
我还通过 shell 和 docker exec 访问它来验证我的 sql 服务器正在运行。但它无法通过 codeigniter 访问