mysql - MySQL 仅在 Workbench 连接到端口 3306 时运行
问题描述
我遇到了一个问题,我无法解决问题。
我想使用 JDBC 连接到 docker 容器内的 MySQL 数据库,但是我得到了这个:
无法创建 PoolableConnectionFactory(无法创建与数据库服务器的连接。尝试重新连接 3 次。放弃。)
<Context>
<Resource name="jdbc/moviedb"
auth="Container"
driverClassName="com.mysql.jdbc.Driver"
type="javax.sql.DataSource"
username="user"
password="pass"
url="jdbc:mysql://localhost:3306/data?autoReconnect=true&useSSL=false"/>
</Context>
然后我下载 MySQL Workbench 以确保 MySQL 在端口 3306 上运行。它正在运行并且我的表和数据正在显示。我去刷新了我的应用程序,突然间它显示了数据。为什么会这样?我觉得这与 localhost vs 127.0.0.1 (或其他任何内容)有关。上周,同样的项目在没有工作台的情况下运行,但是,唯一的区别是我没有使用 docker-compose 文件。
这是我的容器的 docker-compose 文件:
version: "2.1"
services:
database:
container_name: data
image: mysql
volumes:
- ./data.sql:/docker-entrypoint-initdb.d/data.sql
ports:
- "3306:3306"
environment:
MYSQL_DATABASE: "data"
MYSQL_USER: "user"
MYSQL_PASSWORD: "pass"
MYSQL_ROOT_PASSWORD: "root"
任何见解将不胜感激。
我忘了提到,当我第一次使用 docker-compose up 工作台创建容器时,它并没有连接到数据库。只有我只是容器关闭,然后 docker compose start 工作台连接到服务器。
解决方案
所以我发现问题是我的任务要求我使用一个包含 180,000 个插入语句的 SQL 文件,这就是为什么它需要这么长时间。我不得不手动将它们更改为只有一个具有多个值的插入语句。
推荐阅读
- java - 递归如何在此代码中工作以查找 GCD?
- python - 有没有实现与 df.groupby(column_list).size().reset_index() 相同的 pandas 方法?
- python - 如何添加 ; 在 hive ddl 提取的末尾
- string - 在 Scala 中将单词列表查找到字符串中
- laravel - 视图似乎没有在 laravel 中间组“auth”中看到 $error 变量
- node.js - 怎么可能既不是 deepStrictEqual 也不是 NotDeepStrictEqual?
- sql - 防止在搜索框中搜索已删除
- javascript - 我如何遍历一个集合?
- kotlin - 下面 kotlin 代码中第一行的含义是什么。从 Java 到 Kotlin 的 Newbee
- python - 映射字典中的值