喂,伙计们!
这是我的第一次,所以我会尽力做到最好。
我想创建一个应用程序,它是运行与Springboot框架,我想把它连接到一个docker容器嵌入MySQL(但Spring启动应用程序不是运行在docker)
所以我一直关注这个帖子
我已经做了我的docker-comact:
db:
image: mysql
ports:
- '3306:3306'
environment:
- MYSQL_ROOT_PASSWORD=secret
- MYSQL_DATABASE=users
volumes:
- ../data:/var/lib/mysql
我用这个命令运行它:
docker-compose run --service-ports db
一切都很好,所以现在我在Spring靴上改变application.properties:
## Server Properties
server.port= 5000
## Spring DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties)
spring.datasource.url= jdbc:mysql://127.0.0.1:3306/users?useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false
spring.datasource.username= root
spring.datasource.password= secret
## Hibernate Properties
#The SQL dialect makes Hibernate generate better SQL for the chosen database
spring.jpa.properties.hibernate.dialect= org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.hibernate.ddl-auto = update
## Hibernate Logging
logging.level.org.hibernate.SQL= DEBUG
## Jackson Properties
spring.jackson.serialization.WRITE_DATES_AS_TIMESTAMPS= false
spring.jackson.time-zone= UTC
但当我运行我的应用程序时,我有以下错误:(:
原因:org.springframework.jdbc.CannotGetJdbcConnectionException:获取jdbc连接失败;嵌套异常为com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链路故障
我在MacOS上。。。
我试着跟随callicoder的路线。。。
https://www.callicoder.com/spring-boot-spring-security-jwt-mysql-html" target="_blank">react-app-part-1/
谢谢你的帮助:)
问题是db容器不是在本地主机上运行,而是在迷你Linux虚拟机中运行,因为您在MAC上。
因此,要连接到数据库,您需要使用运行容器的机器的IP地址。为此,请运行命令docker machine ip default
。这将返回您将在连接url(而不是本地主机)中使用的IP地址:
spring.datasource.url= jdbc:mysql://<docker-machine-ip>:3306/users?useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false
另一个解决方案是启动一个mysql docker容器并指定它的名称来代替localhost...但是我不想启动mysql docker容器,因为我已经安装了mysql(并且需要卷配置来保持数据持久化) 提前道谢。
我拉出了mysql docker映像,并用命令运行容器: 此时,springBoot在本地工作。它与MySQL连接: 现在,我希望springBoot应用程序也在单独的docker容器上,在同一服务器上。为此,我使用了DockerFile: 同样,它无法连接到数据库:
尝试使用主连接字符串和用户名(数据库名)连接到cosmosdb Mongo API 原因:com.mongodb.mongotieoutexception:在等待与com.mongodb.client.internal.mongoclientdelegate$1@3C291AAD匹配的服务器时,在30000 ms后超时。群集状态的客户端视图是{type=replica_set,servers=[{
我已经运行了MYSQL容器,我能够执行它,并且能够使用“MYSQL-h 172.17.0.2-u root-p”从主机连接。我已经执行“docker run--name=mysql-host-e mysql_root_password=root-d mysql:5.7.32”来运行docker映像。 但是,当我试图通过spring boot应用程序访问时,它会拒绝以下应用程序中的属性。proper
我花了几个小时在谷歌上搜索,但似乎找不到正确的路径/文档来帮助我走上正确的道路:( 前提很简单。 我有一个在localhost:8080上打开的springboot应用程序。我有一个在localhost:15672上打开的rabbitmq服务器 当这两个应用程序都运行时,springboot应用程序将通过一些用户交互向Rabbitmq服务器发送消息。当我对这两个独立的服务进行dockerize(容
免责声明:我知道人们通常不会这样做,我使用SQL数据库是出于成本原因,而且我对编程比较陌生。 我正在尝试从我的Android Studio应用程序向我的MariaDB数据库发送SQL脚本。我目前正在为MariaDB实现一个Java数据库连接(JDBC)驱动程序,但我不确定需要包括什么。 我去了JDBC MariaDB驱动程序的下载网站,但是有很多jar文件,我可以选择下载。你怎么知道你需要哪一个,