与Mysql docker容器建立数据库连接

时间:2018-06-27 04:48:30

标签: mysql docker docker-compose tomcat8

我正在尝试使用Tomcat作为服务器,mysql和mongodb作为具有docker-compose文件的数据库来部署应用程序。

在撰写文件中指定了以下设置:

version: '3.2'
services:
 mongodb:
  image: mongo
  ports:
  - "27017:27017"

 sqldb:
  image: mysql
  ports:
  - "3306:3306"
  expose:
  - "3306"
  volumes:
  - ./db.sql:/docker-entrypoint-initdb.d/db.sql
  environment:
   MYSQL_ROOT_PASSWORD: "root"
   MYSQL_DATABASE: "db"

webapp:
  image: tomcat
  ports:
   - "8080:8080"
  links:
    - mongodb
    - sqldb
  depends_on:
   - sqldb
   - mongodb
  volumes:
    - ./app.war:/usr/local/tomcat/webapps/app.war
    - ./appinfo:/usr/local/tomcat/webapps/appinfo

应用程序已成功部署,但是当我尝试使用数据库中指定的凭据登录时,我面临JDBC连接被拒绝的错误。

我为localhost创建了具有访问数据库所有权限的用户 但这效果不佳。

应用程序使用config.properties文件,该文件包含有关数据库URL和凭据以及作为sqldb(docker服务)的主机的详细信息

jdbc.dialect=org.hibernate.dialect.MySQLDialect
jdbc.driverClassName=com.mysql.jdbc.Driver

jdbc.url=jdbc:mysql://sqldb:3306/db?autoReconnect=true&verifyServerCertificate=false&useSSL=false&requireSSL=false

jdbc.username=root
jdbc.password=root

app.root=~/DevOps/data
app.useMongoDB=true
app.version=1.0
app.mail.tls.enable=true
app.mail.host=
app.mail.port=25
app.mail.auth.user=
app.mail.auth.pass=
app.concurrency=5

任何人都可以建议应该进行哪些更改以便为应用程序建立数据库连接。

0 个答案:

没有答案