Docker的新手和我正在使用laradock通过Craft CMS项目设置我的环境。我能够安装并设置,但是当我尝试连接到laradock从docker-compose.yml
文件创建的MySQL容器时,我遇到了问题。连接到Docker MySQL容器时凭据错误
下面是相关的部分数据库在我docker-compose.yml
mysql:
build:
context: ./mysql
args:
- MYSQL_DATABASE=homestead
- MYSQL_USER=homestead
- MYSQL_PASSWORD=secret
- MYSQL_ROOT_PASSWORD=root
volumes:
- mysql:/var/lib/mysql
ports:
- "3306:3306"
在我的craft/config/db.php
文件,我有以下设置:
return array(
'.dev' => array(
'tablePrefix' => 'craft',
'server' => 'mysql',
'database' => 'homestead',
'user' => 'homestead',
'password' => 'secret',
),
);
不过,我得到一个Craft can’t connect to the database with the credentials in craft/config/db.php
错误。
我的问题是 - 当docker创建MySQL容器时,我假定它使用docker-compose.yml
文件中的凭据来创建并允许访问该数据库。如果是这样,只要我的容器正在运行,并且我的db.php
文件中的凭据与docker-compose.yml
文件中的凭据相匹配,是否应该不连接?
如果我想更新MySQL容器中的凭证,我可以只更新这两个文件中的值并运行docker-compose up -d mysql
?
谢谢!
您仍然想念配置中的数据库主机。 您可以: - 将数据库服务链接到您的应用服务,并在'craft/config/db.php'中使用数据库服务名称作为主机名(在您的情况下为'mysql') - 将docker桥地址设置为数据库主机并使用映射到主机(端口部分)的端口。 –