代码之家  ›  专栏  ›  技术社区  ›  Ebraheem Alrabeea

Docker-如何查看MySQL卷中的表?

  •  12
  • Ebraheem Alrabeea  · 技术社区  · 7 年前

    我已导入 SQL 文件包含我的架构及其所有表,使用:

    services:
      db:
        image: mysql:5.7
        volumes:
          - db_data:/var/lib/mysql
          - ./resources/file.sql:/docker-entrypoint-initdb.d/file.sql
        environment:
          MYSQL_ROOT_PASSWORD: root
          MYSQL_DATABASE: db
    

    问题是,当我尝试从某些表检索数据时,后端会出现异常:

    引发异常: 通用域名格式。mysql。jdbc。例外情况。jdbc4.MySQLSyntaxErrorException:表 '分贝。配置“”不存在 通用域名格式。mysql。jdbc。例外情况。jdbc4.MySQLSyntaxErrorException:表“db”。配置“”不存在

    有些桌子的工作方式就像 user 桌子

    虽然我已经测试了 SQL MySQL Workbench中的文件。

    问题是,有没有办法让我看到 db_data 体积

    3 回复  |  直到 7 年前
        1
  •  34
  •   Rohan J Mohite    7 年前

    是的,您可以从docker命令行查看所有表信息。

    首先,进入docker容器,在下面运行命令。

    docker exec-it mysql\u container\u name mysql-uroot-p

    哪里 是MySQL数据库的用户名。 运行上述命令后,它将询问您密码。

    然后选择数据库,在下面运行命令

    使用数据库的名称

    获取所有表的列表。

    显示表格;

    运行任何查询,例如从

    从table\u name中选择*;

    我已经列出了一些日常docker有用的命令,看看吧。 https://rohanjmohite.wordpress.com/2017/08/04/docker-daily-useful-commands/

    如果需要进一步解释,请告诉我?

        2
  •  3
  •   Shōgun8    5 年前

    您可以直接从主机执行任何SQL命令来查看数据库。
    您正在查找此命令:

    docker exec -it mysql-container mysql -uroot -pmy-secret-pw -D thisdatabase -e "SELECT * FROM table_name;
    

    哪里 mysql容器 是mysql容器的名称
    哪里 -乌罗 是sql容器的帐户
    哪里 -pmy机密pw 是sql容器的密码
    哪里 此数据库 要检查的数据库的名称
    哪里 表\u名称 显然是感兴趣的数据库表名

    提示: 如果是新容器,而您不知道密码,只需运行以下命令:

    sudo docker logs mysql-container 2>&1 | grep GENERATED
    
        3
  •  2
  •   Bad_Pan    7 年前

    一种解决方案是使用MySQL Workbench并创建指向docker数据库容器的连接。从那里可以检查创建了哪些架构表。

    如果启动了数据库docker容器,则可以使用以下命令检查容器并找到IP地址:

    docker在此处检查容器名称

    获取IPAddress并在MySQLWorkbench中使用它来创建连接