【发布时间】:2020-02-20 20:34:48
【问题描述】:
我想将最新的 mariadb:10.4.8 作为 docker 容器运行,其数据文件夹作为主机挂载持久化。
这是我的 docker-compose.yaml
database:
mem_limit: 1073741824
image: mariadb:stable
environment:
MYSQL_DATABASE: mydata
MYSQL_PASSWORD: '123456'
MYSQL_ROOT_PASSWORD: '12345678'
MYSQL_USER: mydata
MYSQL_ROOT_HOST: '%'
stdin_open: true
volumes:
- /opt/mydata/keys/keyfile.key:/etc/mysql/encryption/keyfile.key
- /opt/mydata/keys/keyfile.enc:/etc/mysql/encryption/keyfile.enc
- /opt/mydata/database:/var/lib/mysql
- /opt/mydata/logs:/var/log/mysql
tty: true
cpu_shares: 512
command:
- --max-allowed-packet=100M
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
- --net-write-timeout=300
- --net-read-timeout=300
- --log-error=/var/log/mysql/mysql-error.log
- --plugin-load-add=file_key_management
- --file-key-management-filename=/etc/mysql/encryption/keyfile.enc
- --file-key-management-filekey=FILE:/etc/mysql/encryption/keyfile.key
- --file-key-management-encryption-algorithm=AES_CTR
- --innodb-encrypt-log=ON
- --innodb-encrypt-tables=FORCE
labels:
io.rancher.container.pull_image: always
问题是不再创建“mydata”用户 - 我无法以 root 或 mydata 身份登录。 我在“/opt/mydata/database”下看不到任何“mydata”文件夹。 与 phpmadmin 连接会导致:
ERROR 1045 (28000): Access denied for user 'root'@'localhost'(使用 密码:是)
如果这个任务第一次成功 - 没有问题发生,但如果没有,我可以尽可能多地尝试 - 它不会工作。
当我启动这个服务时——第一个 mariadb 容器突然死掉,然后另一个容器启动。
这在完全更新的 Ubuntu 18.04.3 LTS 主机上运行。
每次设置都几乎相同,因为我们的 Container 等使用 terraform 针对 Rancher Container Orchestrtion 进行配置。
我尝试了不同的 docker 版本 18.06 和 18.09 CE。
我现在的想法很短,有什么想法吗?
【问题讨论】:
-
第一次创建密码时记得吗?尝试使用该密码。您当前的密码似乎不同
-
thx 但这不是我尝试过的密码相关问题
-
到目前为止,我在这里尝试了很多,但没有任何帮助。 mariadb 仍然处于我无法使用 root 用户在本地登录的状态。还在“/var/lib/mysql”中创建了一个“test”文件夹,其中只有一个文件 db.opt,没有别的。
-
我可以建议的一种薄型,但我不确定它是否有效。创建一个带有挂载位置的新容器,一旦登录验证然后尝试一个一个复制db文件并检查它是否能够访问
-
仅供参考:我们可以在哪里点击github.com/docker-library/mariadb/issues/262 现在尝试降级到 10.3.17 和/或使用 MYSQL_INITDB_SKIP_TZINFO=1
标签: docker encryption phpmyadmin mariadb mounted-volumes