在树莓派上使用Docker运行MariaDB

29次阅读
没有评论

问题描述

在尝试在树莓派上使用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镜像。这个镜像可能具有更适合您需求的配置和权限设置。
请注意,使用第三方镜像时,您需要确保镜像的来源可信,并且您已经阅读并理解了镜像的文档和使用说明。

正文完