我导入了一个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
卷中有哪些表?
答案 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;