在lein ring server之后,我收到错误PSQLException没有提供密码

时间:2015-10-09 06:04:19

标签: postgresql clojure windows-7 gitlab ring

我在Postgres和clojure中很天真

我想运行此https://gitlab.com/dzaporozhets/clojure-picture-gallery

Install

git clone https://gitlab.com/clojure-code-examples/picture-gallery.git
cd picture-gallery

# Install dependencies
lein deps

# Create database
psql -c 'CREATE DATABASE gallery TEMPLATE template0'

Running

To start a web server for the application, run:

lein ring server

这是我必须要做的过程。 1))我不得不克隆克隆但git克隆没有工作。他们想让我输入id,密码。像这样:

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.

C:\Users\jiji>git clone https://gitlab.com/clojure-code-examples/picture-gallery
.git
Cloning into 'picture-gallery'...
Username for 'https://gitlab.com': ji
Password for 'https://ji@gitlab.com':
fatal: Authentication failed for 'https://gitlab.com/clojure-code-examples/pictu
re-gallery.git/'

C:\Users\jiji>

无论如何我从网上下载了源代码并解压缩了这个文件

2)我写psql -c 'CREATE DATABASE gallery TEMPLATE template0'时遇到问题。我使用Windows 7.虽然我安装了postgresql,'psql'指令在cmd窗口中没有工作。我不知道如何在窗口中使用'psql'指令。无论如何,我像这样制作图库数据库

enter image description here

3)我在cmd窗口中写了lein ring server 但我得到这样的错误:

C:\Users\jiji\clojureproject\clojure-picture-gallery-master>lein ring server
picture-gallery is starting
Exception in thread "main" org.postgresql.util.PSQLException: The server request
ed password-based authentication, but no password was provided., compiling:(C:\U
sers\jiji\AppData\Local\Temp\form-init366034846235691962.clj:1:105)
        at clojure.lang.Compiler.load(Compiler.java:7142)
        at clojure.lang.Compiler.loadFile(Compiler.java:7086)
        at clojure.main$load_script.invoke(main.clj:274)
        at clojure.main$init_opt.invoke(main.clj:279)
        at clojure.main$initialize.invoke(main.clj:307)
        at clojure.main$null_opt.invoke(main.clj:342)
        at clojure.main$main.doInvoke(main.clj:420)
        at clojure.lang.RestFn.invoke(RestFn.java:421)
        at clojure.lang.Var.invoke(Var.java:383)
        at clojure.lang.AFn.applyToHelper(AFn.java:156)
        at clojure.lang.Var.applyTo(Var.java:700)
        at clojure.main.main(main.java:37)
Caused by: org.postgresql.util.PSQLException: The server requested password-base
d authentication, but no password was provided.
        at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(Connect
ionFactoryImpl.java:473)
        at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(Conne
ctionFactoryImpl.java:203)
        at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactor
y.java:65)
        at org.postgresql.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Conn
ection.java:146)
        at org.postgresql.jdbc3.AbstractJdbc3Connection.<init>(AbstractJdbc3Conn
ection.java:35)
        at org.postgresql.jdbc3g.AbstractJdbc3gConnection.<init>(AbstractJdbc3gC
onnection.java:22)
        at org.postgresql.jdbc4.AbstractJdbc4Connection.<init>(AbstractJdbc4Conn
ection.java:47)
        at org.postgresql.jdbc4.Jdbc4Connection.<init>(Jdbc4Connection.java:30)
        at org.postgresql.Driver.makeConnection(Driver.java:414)
        at org.postgresql.Driver.connect(Driver.java:282)
        at java.sql.DriverManager.getConnection(DriverManager.java:664)
        at java.sql.DriverManager.getConnection(DriverManager.java:208)
        at clojure.java.jdbc$get_connection.invoke(jdbc.clj:177)
        at clojure.java.jdbc$get_connection.invoke(jdbc.clj:161)
        at clojure.java.jdbc$get_connection.invoke(jdbc.clj:164)
        at clojure.java.jdbc$with_connection_STAR_.invoke(jdbc.clj:300)
        at picture_gallery.models.schema$table_exists_QMARK_.invoke(schema.clj:2
8)
        at picture_gallery.models.schema$migrate.invoke(schema.clj:35)
        at picture_gallery.handler$init.invoke(handler.clj:18)
        at clojure.lang.Var.invoke(Var.java:375)
        at ring.server.standalone$serve.doInvoke(standalone.clj:93)
        at clojure.lang.RestFn.invoke(RestFn.java:423)
        at ring.server.leiningen$serve.invoke(leiningen.clj:20)
        at user$eval6633.invoke(form-init366034846235691962.clj:1)
        at clojure.lang.Compiler.eval(Compiler.java:6703)
        at clojure.lang.Compiler.eval(Compiler.java:6693)
        at clojure.lang.Compiler.load(Compiler.java:7130)
        ... 11 more
Subprocess failed

C:\Users\jiji\clojureproject\clojure-picture-gallery-master>

我猜是密码问题。但我不知道这是什么意思

总之我有三个问题关于1)),2)),3))为什么他们没有工作?

1 个答案:

答案 0 :(得分:1)

回答问题3)

在这里查看/src/picture_gallery/models/db.clj https://gitlab.com/dzaporozhets/clojure-picture-gallery/blob/master/src/picture_gallery/models/db.clj#L4

将DATABASE_URL环境变量设置为包含有效的postgres连接URL或只使用

(def db (or (System/getenv "DATABASE_URL")
            "postgresql://user:password@localhost:5432/gallery")) 

使用您的postgres用户和密码替换user之前的password@localhost