问题描述
在尝试在树莓派上使用Docker运行MariaDB时遇到了问题。他尝试了很多不同的Docker镜像,但都遇到了相同的错误。当他尝试通过mysql/mariadb命令导入数据库结构时,总是出现以下错误:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
他提供了他的Dockerfile,希望能够得到关于如何通过控制台登录的建议。
解决方案
请注意以下操作注意版本差异及修改前做好备份。
方案1
根据用户提供的Dockerfile,我们可以看到他使用了webhippie/mariadb
镜像。然而,他遇到了无法通过控制台登录的问题。这可能是由于镜像的配置或权限设置导致的。
为了解决这个问题,我们可以尝试使用docker-compose exec
命令来登录到MariaDB容器并执行数据库导入操作。以下是具体步骤:
1. 创建一个docker-compose.yml
文件。
2. 在该文件中定义需要的服务(MariaDB容器)以及它们的配置。
3. 使用docker-compose exec
命令来登录到MariaDB容器并执行数据库导入操作。
下面是一个示例docker-compose.yml
文件:
version: '3'
services:
mariadb:
container_name: mariadb
image: webhippie/mariadb
networks:
- mynet
environment:
- MARIADB_ROOT_PASSWORD=topsecret
- MARADB_DATABASE=mydb
ports:
- 3306:3306
networks:
mynet:
driver: bridge
在上面的示例中,我们定义了一个名为mariadb
的服务,使用webhippie/mariadb
镜像。我们还指定了网络配置、环境变量和端口映射。
要登录到MariaDB容器并执行数据库导入操作,可以使用以下命令:
docker-compose exec mariadb /usr/bin/mysql -u <your_db_username> --password=<your_db_password> < your_db_backup.sql
请注意,mariadb
是容器的名称,<your_db_username>
和<your_db_password>
是您的数据库用户名和密码,your_db_backup.sql
是您要导入的数据库备份文件。
方案2
用户提到了找到一个可以工作的镜像woahbase/alpine-mysql:armv7l
。如果您对webhippie/mariadb
镜像无法正常工作感到困惑,您可以尝试使用woahbase/alpine-mysql:armv7l
镜像。这个镜像可能具有更适合您需求的配置和权限设置。
请注意,使用第三方镜像时,您需要确保镜像的来源可信,并且您已经阅读并理解了镜像的文档和使用说明。