【发布时间】:2014-12-11 05:17:34
【问题描述】:
我已经在 EC2 实例上安装并运行了 cldwalker 的 datomic-free receipe https://github.com/cldwalker/datomic-free。
;=> System started datomic:free://{EC2 private IP address}:4334/<DB-NAME>,
; storing data in: data
我的free-transactor.properties 文件如下所示:
protocol=free
host={EC2 private IP address}
port=4334
h2-port=4335
h2-web-port=4336
我想从 EC2 外部连接数据库:
(require '[datomic.api :as d])
(def uri "datomic:free://{EC2 public IP address}:4334/om_async?h2-
port=4335&h2-web-port=4336&aws_secret_key={xxx}&aws_access_key_id={yyy}")
(d/create-database uri)
但我明白了:
clojure.lang.ExceptionInfo: Error communicating with HOST
{EC2 private IP address} on PORT 4334 :: {:timestamp 1418304487036,
:host "{EC2 private IP address}", :version "0.9.5078", :port 4334,
:username "{XXX}", :peer-version 2, :alt-host nil, :password "{YYY}",
:encrypt-channel true}
我应该怎么做才能完成这项工作?
更新:
我在 Datomic Google Group 中找到了“EC2 上的 Free Transactor”线程:https://groups.google.com/d/msg/datomic/wBRZNyHm03o/0SdNhqjF27wJ
这是否意味着如果我的应用在同一台服务器上运行,我只能连接到无 Datomic?
如果我将 Datomic-free 托管在 linode 或 digitalocean 上,我是否会遇到同样的问题(无法从外部服务器访问数据库)?
提前感谢您的帮助!
【问题讨论】:
-
您是否检查了您的 EC2 安全组设置以确保端口 4335 暴露在公共网络中?
-
我不记得原因,但我记得有时端口号可能会发生变化和移动
-
@daniula 谢谢。它确实有效,但现在我收到此错误:“java.lang.RuntimeException:在目录中找不到 om_async”有什么想法吗?我在上面更新了我的帖子。
标签: clojure amazon-ec2 datomic