【发布时间】:2020-11-09 12:04:26
【问题描述】:
我正在尝试将 CodeIgniter 4 连接到 docker 上的 Mysql 但失败,错误消息是 无法连接到数据库
docker.yml 文件:
version: '3'
services:
db:
image: mysql/mysql-server:8.0
ports:
- "42313:3306"
volumes:
- ./db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: 123
MYSQL_DATABASE: dbase
MYSQL_USER: user1
MYSQL_PASSWORD: user1
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8080:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: user1
WORDPRESS_DB_PASSWORD: user1
WORDPRESS_DB_NAME: dbase
marketplace:
build: ./mycodeIgnitor
volumes:
- ./mycodeIgnitor:/var/www/html/
depends_on:
- db
restart: always
links:
- db:mysql
ports:
- "8000:80"
volumes:
db_data:
mycodeIgnitor中App/Config/Database中的数据库配置
public $default = [
'DSN' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '123',
'database' => 'dbase',
'DBDriver' => 'MySQLi',
'DBPrefix' => '',
'pConnect' => TRUE,
'DBDebug' => TRUE,
'cacheOn' => false,
'cacheDir' => '',
'charset' => 'utf8',
'DBCollat' => 'utf8_general_ci',
'swapPre' => '',
'encrypt' => false,
'compress' => false,
'strictOn' => false,
'failover' => [],
'port' => 3306,
];
如何连接到控制器文件中的数据库
$db = \Config\Database::connect();
echo !$db;
$query = $db->query('SELECT * FROM wp_users');
$results = $query->getResult();
foreach ($results as $row)
{
print_r(row);
}
错误消息是无法连接到数据库,如果您能发现我的错误,请告诉我。谢谢。
【问题讨论】:
-
在 CI4 中有两种设置数据库配置的方法,
Database.php文件和.env文件。请记住,.env文件将始终接管 php 文件。所以首先,查看.env文件并检查数据库配置是否已被注释掉或未设置。 -
我已经在 .env 文件中注释掉了数据库配置
标签: php mysql docker codeigniter-4