当前位置: 首页 > 知识库问答 >
问题:

Keycloak docker服务无法连接到数据库

向弘懿
2023-03-14

我是docker的新手,我想用Docker-compose启动一个keycloak容器。我正在使用一个mariadb和数据库启动成功。但是当启动keycloak容器时,它会出现这个错误。

原因:java.sql.sqlnontransientconnectionException:无法连接到address=(Host=Project-DB)(Port=3308)(Type=master):套接字无法连接到主机:Project-DB,端口:3308。在org.mariadb.jdbc//org.mariadb.jdbc.internal.util.exceptions.exceptionmapper.get(exceptionmapper.java:241)在org.mariadb.jdbc//org.mariadb.jdbc//org.mariadb.jdbc.internal.protocol.abstractConnectProtocol.connectWithoutProxy(abstractConnectProtocol.java:1243),在bc//org.mariadb.jdbc.driver.connect(driver.java:86)位于org.jboss.ironjacamar.jdbcadapters@1.4.20。final//org.jboss.jca.adapters.jdbc.localmanagedconnectionfactory.createLocalManagedConnectionFactory.createLocalManagedConnectionFactory(localManagedConnectionFactory.java:321)...57更多原因是:在org.mariadb.jdbc//org.mariadb.jdbc.internal.util.exceptions.exceptionmapper.get(exceptionmapper.java:241)在org.mariadb.jdbc//org.mariadb.jdbc.internal.util.exceptions.exceptionmapper.connexception(exceptionmapper.java:87)在org.mariadb.jdbc//org.mariadb.jdbc//org.mariadb.jdbc.java:474)在org.mariadb.jdbc//org.mariadb.jdbc//org.mariadb.jdbc.internal.protocol.abstractConnectProtocol.ConnectWithOutProxy(abstractConnectProtocol.java:1238)...61更多原因是:java.net.ConnectException:连接拒绝(Connection拒绝)在java.base/java.net.plainsockeTimpl.socketConnect(本机方法)在在java.base/java.net.sockssocketimpl.connect(abstractplainsocketimpl.java:224)在java.base/java.net.sockssocketimpl.connect(sockssocketimpl.java:403)在java.base/java.net.socket.connect(sockssocketimpl.java:403)在java.base/java.net.socket.connect(socket.java:609)在

这是我的码头工人作曲。

version: "3.6"
services:
  project-db:
    container_name: project-maria-db
    image: mariadb:10.5.8-focal
    restart: always
    ports:
      - 3308:3306
    volumes:
      - /project/db:/data/db
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=project
      - MYSQL_USER=user
      - MYSQL_PASSWORD=password

  project-keycloak:
    container_name: project-keycloak
    image: quay.io/keycloak/keycloak:10.0.1
    restart: always
    ports:
      - 8180:8080
    environment:
      PROXY_ADDRESS_FORWARDING: "true"
      DB_VENDOR: mariadb
      DB_ADDR: project-db
      DB_PORT: 3308
      DB_DATABASE: project_keycloak
      DB_USER: user
      DB_PASSWORD: password
      KEYCLOAK_USER: admin
      KEYCLOAK_PASSWORD: admin
    depends_on:
      - project-db

有人能帮我解决这个问题吗?

共有1个答案

陈胤
2023-03-14

您需要添加网络来将它们组合在同一个网络中。

version: "3.6"
services:
  project-db:
    container_name: project-maria-db
    image: mariadb:10.5.8-focal
    restart: always
    ports:
      - 3308:3306
    volumes:
      - /project/db:/data/db
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=project
      - MYSQL_USER=user
      - MYSQL_PASSWORD=password
    networks:
      - app-network

  project-keycloak:
    container_name: project-keycloak
    image: quay.io/keycloak/keycloak:10.0.1
    restart: always
    ports:
      - 8180:8080
    environment:
      PROXY_ADDRESS_FORWARDING: "true"
      DB_VENDOR: mariadb
      DB_ADDR: project-db
      DB_PORT: 3308
      DB_DATABASE: project_keycloak
      DB_USER: user
      DB_PASSWORD: password
      KEYCLOAK_USER: admin
      KEYCLOAK_PASSWORD: admin
    depends_on:
      - project-db
    networks:
      - app-network
networks:
  app-network:
    driver: bridge
 类似资料:
  • 我刚刚把pgAdmin更新到4.23版,PostgreSQL更新到12版。我还删除了所有以前的数据库和pgAdmin安装。所以应该是全新安装(我也清理了之前版本的所有残余)。 现在,当我尝试连接到本地数据库服务器时,我甚至在键入密码之前就得到了这个:

  • 我正在尝试连接到mysql工作台,但遇到以下错误 错误消息无法连接到数据库服务器 用户“root”从主机到服务器的连接尝试失败(位于127.0.0.1:3306:无法打开数据库)。 请:1。检查mysql是否正在服务器127.0.0.1上运行 检查mysql是否在端口3306上运行(注意:3306是默认值,但可以更改) 检查root是否具有从您的地址连接到127.0.0.1的权限(mysql权限定

  • 获取以下代码的错误 我得到的输出错误是

  • 我正在处理一个奇怪的问题,即使用JDBC在AmazonRDS上连接MySQL数据库。我有两部不同的Android手机在同一个网络上运行相同的代码。一个人连接起来没有任何问题。另一个是给我以下的例外: 数据库只显示1个活动连接,所以我知道这不是因为打开的连接太多。我尝试重新启动服务器,但没有帮助。我使用的是MySQL JDBC Connector/J版本5.1.23。工作的手机运行的是Android

  • 我在设置打开班次时遇到问题,并在连接到我的服务器域后收到以下错误: 我不确定这是在告诉我做什么。我尝试按字面意思使用指令,但它无法识别命令。 有什么想法吗?

  • 问题内容: 我不确定如何解决此问题 我不知道为什么在尝试以下操作时会出现此错误: 当我尝试连接到postgres时: 问题答案: 可能是一些问题: PostgreSQL没有运行。用sudo检查 你的PostgresSQl不在端口5432上运行。你可以检查其键入 尝试连接到数据库时出现错误,例如用户名,密码或数据库名。检查它们是否是postgres要求你连接的对象,并且这是你要访问的db_name。