我想将 MariaDB 添加到我的 docker compose 文件中,如下所示:
version: '3'
services:
mariadb:
image: 'mariadb:10.3'
ports:
- "3306:3306"
volumes:
- "${PWD}/data/mariadb:/var/lib/mysql:rw"
environment:
MYSQL_ROOT_PASSWORD: 'rootpass'
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
MYSQL_USER: 'dev'
现在我可以使用-uroot -p
并输入rootpass
密码进行连接,但是我无法使用-udev
并且没有密码进行连接。它说:
ERROR 1045 (28000): Access denied for user 'dev'@'172.31.0.1' (using password: NO)
我也尝试添加MYSQL_PASSWORD: ~
orMYSQL_PASSWORD: ''
到环境变量,但这也不起作用。
当我添加一个实际密码时它可以工作MYSQL_PASSWORD: 'dev'
,但没有密码我就无法工作。有谁知道环境变量的神奇组合?
我想要实现这一点的原因是因为我的团队目前以不同的方式设置了这个,每个人都有一个.my.cnf
包含user=dev
和password=
. 所以如果每个人都能保持这个本地配置不变就好了。
来自入口点的代码是:
所以
MARIADB_PASSWORD
(和旧的MYSQL_PASSWORD
被复制到MARIADB_PASSWORD
)不能为空才能创建用户。MARIADB_ALLOW_EMPTY_ROOT_PASSWORD
(又名MYSQL_ALLOW_EMPTY_PASSWORD
)仅适用于 root 密码,因此更改了名称。一种方法是使用
/docker-entrypoint-initdb.d
有一个reset_pass.sql
文件: