MySQL仅在Workbench连接到端口3306

时间:2019-01-19 12:21:21

标签: mysql docker jdbc

我遇到了一个问题,我无法解决问题。

我想使用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&amp;useSSL=false"/>
</Context>

然后我下载MySQL Workbench,以确保MySQL在端口3306上运行。并且该MySQL正在运行,并且正在显示我的表和数据。我去刷新了我的应用程序,突然间它显示了数据。为什么会这样呢?我觉得这与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 workbench创建容器时没有连接到数据库。只有我只是将容器放下,然后docker compose start会不会将工作台连接到服务器。

1 个答案:

答案 0 :(得分:0)

因此,我发现问题是我的任务需要我使用带有180,000条插入语句的SQL文件,这就是为什么花费这么长时间的原因。我不得不手动将它们更改为只有一个具有多个值的插入语句。