我从Docker镜像中的MariaDB数据库中获取此错误,Docker镜像我正在使用this Moodle image并使用docker-compose启动实例。
我只是想在docker数据库中恢复转储,我正在关注this thread并且我正在测试这个命令:
docker exec -i mysql-container mysql -uuser -ppassword name_db < data.sql
docker-compose.yml如下:
version: '2'
services:
mariadb:
image: 'bitnami/mariadb:latest'
environment:
- MARIADB_USER=bn_moodle
- MARIADB_DATABASE=bitnami_moodle
- ALLOW_EMPTY_PASSWORD=yes
volumes:
- 'mariadb_data:/bitnami'
moodle:
image: 'bitnami/moodle:3'
environment:
- MARIADB_HOST=mariadb
- MARIADB_PORT_NUMBER=3306
- MOODLE_DATABASE_USER=bn_moodle
- MOODLE_DATABASE_NAME=bitnami_moodle
- ALLOW_EMPTY_PASSWORD=yes
ports:
- '80:80'
- '443:443'
volumes:
- 'moodle_data:/bitnami'
depends_on:
- mariadb
volumes:
mariadb_data:
driver: local
moodle_data:
driver: local
所以我这样做:
docker exec -i docker-instance-id mysql -uuser=bn_moodle bitnami_moodle < Dump20190402.sql
因为我没有在yaml文件中看到任何用户密码,所以我没有传递它,假设我可以在没有密码的情况下登录数据库。
但我收到这个错误:
用户'user = bn_moodle'@'localhost'拒绝访问(使用密码:否)
任何建议将不胜感激!谢谢
您的exec命令中有拼写错误。它应该是--user=bn_moodle
或-u bn_moodle
而不是--uuser
docker exec -i docker-instance-id mysql --user=bn_moodle bitnami_moodle < Dump20190402.sql