Tag: jdbc

javax.naming.NameNotFoundException:名称未在此上下文中绑定。 无法find

我在tomcat 8.0.41上部署了一个webapp。 该webapp应该连接到一个MySQL服务器5.7。 值得一提 tomcat和mysql服务器都是作为docker-container运行的。 这就是为什么msyql-url是:“jdbc:mysql:// db:3306 / ProjectDB”。 jdcb-jar通过docker-compose添加到tomcat。 但我认为这不应该是错误的根源。 ConnectionBuilder.java package Persistence; import java.sql.Connection; import java.sql.SQLException; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.sql.DataSource; public class ConnectionBuilder { public Connection conn; public ConnectionBuilder()throws NamingException, SQLException { Context intitialContext = new InitialContext(); Context environmentContext = new InitialContext(); environmentContext = (Context) intitialContext.lookup("java:comp/env"); DataSource dataSource = […]

grails / mysql与docker组成

我试图在docker中运行grails应用程序,并继续运行在一些MySQL连接问题。 我找不出问题所在。 这是我的docker-compose文件 version: "2" services: db: image: mysql:5.7 volumes: – db_data:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: root2017 MYSQL_DATABASE: dbname MYSQL_USER: Dbuser MYSQL_PASSWORD: passw grails: depends_on: – db ports: – "9001:9001" restart: always environment: DB_HOST: db:3306 DB_PASSWORD: passw volumes: db_data: grails应用程序不会以下列错误开始: 错误18:08:05 org.apache.tomcat.jdbc.pool.ConnectionPool – 无法创build池的初始连接。 grails_1 | com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链接失败

使用Docker从Java应用程序连接到MySQL数据库

我是Docker的新手。 我想让我的Java应用程序与MySQL数据库连接。 我有以下代码: import java.sql.*; class HelloDbDocker{ private static String jdbcDriver = "com.mysql.jdbc.Driver"; private static String dbName = "employee"; public static void main(String[] args) { try { Class.forName(jdbcDriver); Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/?user=root&password="); Statement s = conn.createStatement(); int Result = s.executeUpdate("CREATE DATABASE "+dbName); System.out.println(Result ); } catch(Exception e) { System.out.println(e); } } } 对于上面的代码,我想创build一个Dockerfile,它提供所有的依赖关系,并使用该Dockerfile我可以创build一个图像,它可以运行在任何地方,并显示结果variables的值在屏幕上。

无法连接到Postgres的数据库 – docker群

我有困难通过IntelliJ连接到我的postgresql。 我正在使用这个docker-compose文件: version: '3' services: db: image: postgres environment: POSTGRES_DB: postgres POSTGRES_USER: postgres_user POSTGRES_PASSWORD: postgres_password PG_DATA: /var/lib/postgresql/data/pgdatai expose: – "5432" ports: – "5432" volumes: – /var/lib/postresql/db/ deploy: placement: constraints: – node.hostname == vmAPT1 我把这个命令放在里面: docker stack deploy –compose-file docker-compose.yml vmAPT1 当我使用: docker ps 我懂了: CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 31d1337a142c postgres:latest "docker-entrypoint…" […]

连接到从docker容器到主机中打开的端口的端口

我有一个Spring启动应用程序,使jdbc连接到不同的VPC中的数据库。 从我本地我没有访问这个数据库,所以当我在本地部署我的应用程序时,我必须打开一个SSH通道才能连接到数据库。 这是如何设置隧道: ssh -L 61616:data_base_host:data_base_port myuser@tunnel_server 然后我的应用程序连接使用: jdbc:sqlserver://localhost:61616…. 现在我需要将我的应用程序放入Docker容器中。 这是我如何运行我的docker图像: docker run -p 9018:9018 myapp 9018是http端口。 当Spring启动应用程序在Docker内部启动时,它无法连接到数据库。 错误是: Failed to initialize pool: The TCP/IP connection to the host localhost, port 61616 has failed. 所以我需要将容器内的端口61616绑定到主机的端口61616。 我能够解决我的问题使用这个jdbcurl: jdbc:sqlserver://docker.for.mac.localhost:61616 使用别名docker.for.mac.localhost可以实现这个诀窍,但它是面向Mac平台的解决scheme。 我也试过: docker run -p 9018:9018 -p 61616:61616 myapp 并没有工作。 有任何想法吗?

使用java jdbc套接字工厂从本地docker容器内连接到cloudsql实例

我很难让我的jar从本地docker容器内连接到cloudsql。 如果我在容器外面运行jar: export GOOGLE_APPLICATION_CREDENTIALS=<path to credentials.json> jar -jar <myjar.jar> 那么它工作正常。 但是,当我运行这样的docker: docker run -d -p MY_SERVER_PORT:MY_SERVER_PORT -p 3306:3306 -v <local path to credentials.json>:<path in container> <image name> 我在容器日志中得到以下内容: Nov 09, 2017 10:37:15 AM org.hibernate.Version logVersion INFO: HHH000412: Hibernate Core {0.0.1} Nov 09, 2017 10:37:15 AM org.hibernate.cfg.Environment <clinit> INFO: HHH000206: hibernate.properties not found Nov 09, 2017 […]

tns:listener:所有适当的实例使用docker和DBVis阻塞新的连接

在Docker上拉取图片来运行数据库。 使用DBVisualiser设置端口,使用Oracle,Oracle Thin驱动程序和XE服务。 连接到DbVisualiser,连接成功。 那天晚些时候试图连接并得到一个“tns:listener:所有适当的实例阻塞新的连接” 删除的图像,重新拉,它无法拉。 有关如何重置此侦听器的任何build议,如果这是修复?

Docker容器之间的JDBC连接(docker-compose)

我尝试将运行在tomcat 8上的Web应用程序连接到Oracle数据库。 它们都作为Docker容器运行: 泊坞窗,compose.yml: version: "3" services: appweb: build: ./app image: "servlet-search-app:0.1" ports: – "8888:8080" links: – appdb environment: – DATA_SOURCE_NAME="jdbc:oracle:thin:@appdb:1521/XE" appdb: build: ./db image: "servlet-search-db:0.1" ports: – "49160:22" – "1521:1521" – "8889:8080" 我的oracle数据库镜像的Dockerfile(build:./db): FROM wnameless/oracle-xe-11g ADD createUser.sql /docker-entrypoint-initdb.d/ ENV ORACLE_ALLOW_REMOTE=true Tomcat映像的Dockerfile(build:./app) FROM tomcat:8.0.20-jre8 COPY servlet.war /usr/local/tomcat/webapps/ COPY ojdbc14-1.0.jar /usr/local/tomcat/lib/ 所以应用程序按预期启动,但在尝试连接到数据库时引发exception: java.lang.IllegalStateException: java.sql.SQLException: Io exception: […]

从主机连接到Docker容器

我只是拉和运行官方的Docker MySQL映像 ,并让它在我的机器上本地运行: docker run –name mydb -e MYSQL_ROOT_PASSWORD=12345 -d mysql:5.7.11 该屏幕上的说明将告诉您如何从另一个容器(configuration为命令行客户端)内部连接到MySQL服务器(容器)。 但我有一个通用的JDBC胖客户端( SQuirreL ),想知道如何连接到我的docker集装箱。 对于JDBC连接string,我需要提供一个主机名和一个dbname ,我可以使用什么? 我想可以从我的宿主操作系统中findDocker容器,但是我还没有创build任何数据库,所以我不确定我可以提供什么样的dbname值: jdbc:mysql://<hostname>:3306/<dbname>

如何在Docker环境下使用Mysql启动Aerogear统一推送服务器

我正努力在一个有mysql数据库的docker环境中启动aerogear统一推送服务器。 我在这里跟随Aerogear文件 。 所以我开始了一个mysql docker容器 docker run –name aerogearsql -e MYSQL_ROOT_PASSWORD=sqlpwd -d mysql 我已经在这些文件中应用了什么 docker exec -ti aerogearsql -u root -p mysql> create database unifiedpush default character set = "UTF8" default collate = "utf8_general_ci"; mysql> create user 'unifiedpush'@'localhost' identified by 'unifiedpush'; mysql> GRANT SELECT,INSERT,UPDATE,ALTER,DELETE,CREATE,DROP ON unifiedpush.* TO 'unifiedpush'@'localhost'; 然后,我使用下面的docker文件准备了一个泊坞窗图像,应用了aerogear文档中的内容。 这是docker文件 FROM jboss/wildfly MAINTAINER yves.nicolas@dynamease.com ENV […]