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

时间:2018-01-04 23:26:25

标签: mysql docker docker-compose

我导入了一个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

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

  

抛出异常:   com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:表   'db.Configuration'不存在       com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:表'db.Configuration'不存在

有些表的工作方式与user表完全相同。

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

问题是,有没有办法可以看到db_data卷中有哪些表?

3 个答案:

答案 0 :(得分:4)

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

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

  

docker exec -it mysql_container_name mysql -uroot -p

其中“ root ”是MySQL数据库的用户名。 运行上述命令后,它会询问您密码。

然后选择数据库,在命令

下运行
  

USE Name-Of-The-Database

获取所有表的列表。

  

显示表格;

运行任何查询,例如从

中选择*
  

SELECT * FROM table_name;

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

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

答案 1 :(得分:1)

一种解决方案是使用MySQL Workbench并创建指向docker数据库容器的连接。从那里,您可以检查已创建的模式表。

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

  

docker inspect container-name-here

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

答案 2 :(得分:0)

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

°

其中 mysql-container 是mysql容器的名称
其中 -uroot 是sql容器的帐户
其中 -pmy-secret-pw 是sql容器的密码
其中 此数据库 是要检查的数据库的名称
其中 table_name 显然是感兴趣的数据库表名称

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

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