在Linux(Ubuntu 20.04)上测试新安装的SilverStripe。我的数据库容器是这样设置的:
...
services:
db:
image: mariadb:10
env_file:
- .env
environment:
MYSQL_ROOT_PASSWORD: ${SS_DATABASE_PASSWORD}
MYSQL_PASSWORD: ${SS_DATABASE_PASSWORD}
MYSQL_USER: ${SS_DATABASE_USERNAME}
MYSQL_DATABASE: ${SS_DATABASE_NAME}
MYSQL_TCP_PORT: ${SS_DATABASE_PORT}
MYSQL_INITDB_SKIP_TZINFO: 0
...
而且我直接连接到容器也没有问题。但是,当我用php -S localhost:8000
之类的命令运行服务器时,我得到了拒绝访问警告:
[Warning] mysqli::real_connect(): (HY000/1045): Access denied for user '<MYSQL_USER>'@'localhost' (using password: YES)
试图找出哪些设置不正确。
1条答案
按热度按时间68bkxrlz1#
其中一个环境变量为空:
这将导致无法创建用户。
另外,“boolean”变量是空的还是非空的,所以
MYSQL_INITDB_SKIP_TZINFO: 0
实际上是一个“true”,意味着跳过tz初始化。MYSQL_TCP_PORT
不是mariadb容器所考虑的变量。如果您想更改它,请使用command: --port $SS_DATABASE_PORT
。