【问题标题】:access my docker mysql container in java class在 java 类中访问我的 docker mysql 容器
【发布时间】:2016-03-26 16:40:36
【问题描述】:

我正在学习 docker 并尝试在我的 java 应用程序中连接一个数据库。

我已经创建了容器并启动了它

5621fc9b438d mysql/mysql-server:latest "/entrypoint.sh mysq 大约一个小时前 Up 大约一个小时 3306/tcp mysql-db

我还访问了容器并通过 bash 创建了一个数据库。我在连接 Java 类上的数据库时遇到问题。

我的 Java 方法

 @Bean
public DataSource dataSource() {
    DriverManagerDataSource dataSource = new DriverManagerDataSource();
    dataSource.setDriverClassName("com.mysql.jdbc.Driver");
    dataSource.setUrl("jdbc:mysql://localhost/mydb");
    dataSource.setUsername("mysql-db");
    dataSource.setPassword("root");
    return dataSource;
}

如何在 Java 应用程序上连接和使用我的 docker mysql 数据库?

【问题讨论】:

  • 是否必须将端口号指定为“setUrl”?
  • 是的,dataSource.setUrl("jdbc:mysql://localhost:3306/mydb");

标签: mysql docker


【解决方案1】:

确保您已使用-p 3306:3306(不仅仅是-p 3306)向外部开放您的端口3306。默认情况下,只有链接的容器才能访问您的 mysql 端口。

最后,如果您使用 docker-machine 运行 Docker,则需要指定为 Docker VM 生成的 ip,而不是 localhost

祝你好运。

【讨论】:

    猜你喜欢
    • 2019-06-10
    • 2019-01-19
    • 1970-01-01
    • 2017-07-24
    • 2022-11-18
    • 2017-10-12
    • 2018-08-19
    • 1970-01-01
    • 2021-10-08
    相关资源
    最近更新 更多