0

我正在使用 tilelite 来提供地图。我需要它在服务器启动时运行。我已经构建了一个在启动时运行以下命令的脚本:
/usr/local/bin/liteserv.py /home/Uname/bin/mapnik/my_osm.xml --caching --debug=False
进程失败:
致命:用户“user_name”的身份验证失败(在解析层“休闲”时遇到)
根据此页面:

http://wiki.openstreetmap.org/wiki/Mapnik#Authentication_failed

我运行了以下命令:

./generate_xml.py osm.xml my_osm.xml --accept-none --dbname gis --symbols ./symbols/ --world_boundaries ./world_boundaries/

现在我得到:

RuntimeError: PSQL error:
FATAL: Ident authentication failed for user "root" (在解析层 'leisure' 时遇到)

我对postgres真的很陌生,所以有人可以给我一些非常简单的关于如何解决这个问题的指导。

4

1 回答 1

0

如果您调用 ./generate_xml.py --help 您将看到各种选项。其中之一是 --user。如果您不提供它并且还传递了 --accept-none 则不会将特定用户写入 Mapnik XML,这意味着当 Mapnik 尝试连接到 postgres 数据库时,将使用当前用户。因此,如果您以 root 身份运行该脚本,将使用“root”。

因此,您需要以可以连接到 postgres 的 unix 用户身份运行该脚本,或者您需要返回并重新生成 XML 并嵌入可以连接到 postgres 的用户名。后者可能更容易。这是我要做的:

假设您的正常 unix 使用名为“heman”,请执行以下操作:

$ sudo su postgres
$ createuser heman # make superuser
$ exit
$ ./generate_xml.py osm.xml --accept-none --user heman --dbname gis --symbols ./symbols/ --world_boundaries ./world_boundaries/
$ liteserv.py osm.xml --caching --debug=False

有关 postgres 以及如何启用“信任”的更多详细信息,以便您可以在此处以“postgres”用户身份连接:http: //dbsgeo.com/foss4g2010/html/troubleshooting.html#troubleshooting-postgresql-connections

于 2011-02-02T04:46:03.293 回答